post

进程与线程的一个简单解释

进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。

最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。

1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。

工厂
[Read more…]
post

大神手把手教你如何使用异步编程提升服务性能

作者:肖飞,2011年加入京东,目前在交易平台,主导交易平台核心系统的架构优化和技术攻关,以及公共技术组件和平台的建设。

庞大复杂的系统通常会采用服务化组件来实现。系统越复杂,组件之间的依赖和调用关系也会越复杂。对于处于底层的基础服务,直接和间接的调用所带来的流量压力非常大。处于中间层的聚合型服务,面对的挑战则是依赖的服务太多,后端个别服务的性能延迟就会影响其吞吐量。性能优化是我们系统稳定性中的重要一环,这其中,调用所依赖的RPC服务或后端数据是重点之一。

目前,除了传统JDBC这样从API到主流驱动实现就是阻塞式的类库之外,其他常用的RPC/HTTP服务、MQ、Redis、Mongodb、Kafka等系统都提供了成熟的基于NIO的客户端库,也有相应的异步API。

[Read more…]
post

调用WebService超时问题汇总(Java、C#)

目前比较常用的 WebService 有两种方式:SOAP和REST,本文就以调用这两种方式的服务,介绍编程中常用的超时设置,包括 JavaC# 调用远程 SOAP 服务,以及利用 HttpClient(Java)和 HttpWebRequest(C#)调用 REST 服务(简单的 HTTP 服务)的超时问题。

小彩旗停不下来
[Read more…]

post

便于调试的 JavaScript Source Map 详解

目前 jQuery 的最新版本有v2.0.3 和 v1.10.2,在 jQuery 1.9 之后,有很多新功能,其中一个就是支持 Source Map。

jQuery JavaScript Source Map
[Read more…]

post

详解Quartz定时任务框架中的Cron时间表达式

Quartz是英文“石英”的意思,如果你的表上有这个单词,这只说明你的手表是电子石英脉冲手表。在编程中,有一个名为Quartz的开源作业调度框架,顾名思义,就是定时执行任务。多应用于Java编程中与Spring框架相集成,目前也有Quartz.net。

Quartz使用类似于Linux下的Cron表达式定义时间规则,Cron表达式是由6或7个字段(年字段是可选字段)的字符串组成,字段与字段之间用空格来隔开,最小支持到秒数级别。

本篇文章参考的是官网帮助文档的 Cron表达式 ,英文在线帮助文档的,有兴趣的可以前往:
Quartz官方下载地址 | Cron expressions

[Read more…]

post

Java IDE中设置作者日期等Javadoc注释信息

JavaIDE(Integrated Development Environment,集成开发环境)中,如Eclipse、Spring Tool Suite、IntelliJ IDEA等,都可以设置自动添加的Javadoc注释信息,可以添加@author 作者名、@version 版本标识、@date 日期等,新添加类或方法时会自动添加注释信息,很方便。/**被注释语句*/ 就是专为Javadoc设计,可以被JDK内置的Javadoc工具支持和处理,下面就介绍下如何设置Javadoc注释信息和注释的规范。

[Read more…]

post

Chrome新增“x-callback”功能,提升iOS体验

iOS设备应用中打开网址的话,iPad中可以四指滑动来切换回应用,越狱后的iPhone安装插件后也可以滑动切换回应用,很方便,可是对于未越狱的iPhone就比较惨了,需要双击Home才可以返回应用。目前开发者针对这一问题的解决方案有两种:一是内嵌浏览器,二是通过默认的Safari打开网址(无法返回应用),操作体验很不理想。万能的Google出了一个绝佳的方案,被称为“x-callback”:在本地浏览器中打开应用中的网页链接,但用户可以在浏览器中一键返回刚才的应用,而无需手动切换。
[Read more…]

post

图片相似搜索,其实原理挺简单(一)

图片相似搜索,顾名思义,就是通过在线图片地址或本地上传的一张图片,搜索互联网上所有与它相似的图片。类似的“相似图片搜索引擎”有不少,如Google图片搜索、百度识图、TinEye等;Google搜索出的图片量较大,TinEye甚至可以找出照片的拍摄背景。今天介绍一种叫做“感知哈希算法(Perceptual hash algorithm)”的关键技术。

Google图片搜索
[Read more…]

post

具有高扩展性的存储引擎:TokuDB

TokuDB是什么?TokuDB是一个应用在MySQL和MariaDB中的存储引擎,它使用索引来加快查询速度,具有高扩展性并支持Hot Schema Modification。如果你的记录数量过亿、存储旧的记录或想要缩小数据占用的存储空间,很适合使用TokuDB。本文内容摘自淘宝核心系统团队博客分享的文档,最下面有原文地址及文档下载。

[Read more…]

post

可持久化的工业级存储系统:RethinkDB

RethinkDB是什么?RethinkDB是一个完全支持Memcached协议、数据可持久化的工业级key-value存储系统。RethinkDB采用append-only的方式来管理数据和索引,消除闪存上的随机写操作,从而延长了内存的使用寿命。本文内容摘自淘宝核心系统团队博客分享的文档,最下面有原文地址及文档下载。
[Read more…]