共勉
"诸君离学校而去了。在社会上立身的困难,恐怕比在学校里求学还要加甚。若非立志奋斗,则以前所受的教育,反足以增加人生的苦恼,或转为堕落的工具。这是诸君所当特别注意的。事业的成功,须经过长时间的辛苦艰难——成功的代价,走过了许多荆棘的路,方才能寻获康庄大道。立志是砍荆棘斧斤,奋斗是劳力。万不可希望以最少的劳力,获最大的成功。" -- 蒋梦麟
Knight's Blog
滴滴海浪技术主管, 前百度资深研发工程师,现居上海。 擅长于大规模的系统平台服务架构。在

- 亿级别搜索平台(sov5.cn)
- 大规模分布式爬虫
- 中间件架设(disconf,CanalX)
- 广告平台(百度联盟广告)
- 租车平台(滴滴租车)
- 语言招聘平台(51tra.com)
- 内容平台(100weidu.com)
- 社区平台(python88.com)
- 资源下载平台(misou.com)
- 计算机图形图像技术(一篇一作)
- 机器学习(一篇一作)

等领域具有颇有经验。
联系方式: knightliao AT gmail.com
联系
近一个月内十大热门文章
最热结点
java 内存一例浅析
工作 • 1419 浏览 • 2015-07-29 10:52
执行 ./jstat -gc 131 ![image](http://ww3.sinaimg.cn/mw1024/006bdDhdjw1eujg8zz3anj30ph01udg9.jpg) 执行 ./jstat -gcutil 131 ![image](http://ww1.sinaimg.cn/mw1024/006bdDhdjw1eujg928bgjj30fv01ft8r.jpg) 可以分析出: S0: 0M / 1M S1: 500K / 1M ……
继续阅读
跨域登录技术讨论
工作 • 2531 浏览 • 2015-07-07 10:46
### CAS 原理就是通过一个统一的登录中心UC来控制 每个产品线的登录。一般来说,对于大型企业来说,这是必要的,对于小企业来说,没必要这么做。 CAS解决单点登录SSO http://techv5.com/topic/1528/ 淘宝、天猫登录与 cas/sso http://techv5.com/topic/1529/ ### 跨域实现 这是本文想要讨论的重点 假设存在两个域名:A.com B.com 想实现的效果:用户只要登录任何一个系统,就可……
继续阅读
Spring transaction synchronization
工作 • 1644 浏览 • 2015-07-02 15:19
http://docs.oracle.com/javaee/5/api/javax/transaction/Synchronization.html The transaction manager supports a synchronization mechanism that allows the interested party to be notified before and after the transaction completes. Using the registerSynch……
继续阅读
架构:Starbucks Does Not Use Two-Phase Commit
工作 • 1203 浏览 • 2015-06-30 20:35
http://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html 使用异步消息来解决事务问题,解决二阶段提交问题。
继续阅读
架构:Consumer-Driven Contracts: A Service Evolution Pattern (消费者驱动的契约)
工作 • 1678 浏览 • 2015-06-30 19:48
http://martinfowler.com/articles/consumerDrivenContracts.html 大概是讲: 消费者驱动的契约描述的是服务提供者向其所有当前消费者承诺遵守的约束。一旦各消费者把自己的具体期望告知提供者,消费者驱动的契约就被创建了。在提供者方面创建的约束,确定了一个消费者驱动的契约。若提供者接受了一个消费者驱动的契约,那么它只需保证已有约束仍能得到满足,即可自行改进与修改其服务。 也就是说,一旦约定好接口约束后,在对自己做升级时,只要约束未影响,就……
继续阅读
架构:Tolerant Reader(容忍读策略)
工作 • 2015 浏览 • 2015-06-30 19:37
本篇文章的大体意思就是说 下游在使用上游数据时要使用最小化策略,parse接口数据时只拿自己关心的数据就可以了。并且要保证在上游改进时,下游不需要进行修改。 在架构时比较有用。 One of the benefits of using web services is that it helps you to decouple various parts of a system. People can work on separate code-bases with some degree of ……
继续阅读
架构:微服务
工作 • 1774 浏览 • 2015-06-30 17:28
### Microservices http://martinfowler.com/articles/microservices.html We do not claim that the microservice style is novel or innovative, its roots go back at least to the design principles of Unix. But we do think that not enough people consider……
继续阅读
jquery 页面多按钮 点击事件 重复的问题
工作 • 1129 浏览 • 2015-06-17 11:49
在一个页面里,有多个同种类型的按钮(很可能是一个list),我们想要捕捉它的点击事件 我们一般会这样来写: r.find(".edit-tgr").on("click", function () { } 这样,我们就为一组按钮同时设置了点击事件。 此时,如果点击了某一个按钮并触发了点击事件后,这时,如果 - 我们啥也不做:被点击的这个按钮将无法再被点击(因为事件触发后,必须重新进行注册) - 我们重新执行了上面一段代码:虽然解决了被点击的按钮……
继续阅读
Paragon NTFS for mac install
生活 • 1694 浏览 • 2015-06-13 12:05
1.下载 http://www.nowmac.com/soft/system/systool/Paragon_NTFS.html 中的 Paragon NTFS 11. 注意,不要安装这个,但是要关注 http://ww3.sinaimg.cn/bmiddle/60c9620fgw1et2bzaen63j20560370sp.jpg 这个文件。 2.下载 http://www.pc6.com/mac/112001.html 中的 Paragon NTFS 12 按它的方法进行……
继续阅读
facebook广告系统初探
工作 • 2133 浏览 • 2015-06-08 21:08
## 广告准则 主要是两个,先确定目标,然后再确定在哪些广告版位上进行投放。 - 广告目标 - 广告版位 - 桌面版动态消息、 - 移动版动态消息以及 - Facebook 右边栏 ### 广告图片和视频 广告媒体类型有 图片和视频 两种。 一般来说,每个广告只能含有一张图片。规则如何:当您同时选择多个图片时,系统即会在同一个广告系列中创建多条广告,以便今后根据不同广告的表现将预算用于成效最佳的广告 此种广告在所有广……
继续阅读
rabbitmq 高可用性初探
工作 • 1591 浏览 • 2015-06-08 11:25
rabbitmq的AMQP客户端并没有做高可用性的工作,(java的是完全没有做,kombu只支持多hosts参数,在连接失败时必须自己处理重新连接) 因此,如果要自己做高可用性可以有两种做法 1. 硬件F5处理 没钱的小屌丝就算了吧 2. 软件模拟F5处理 可以搭建HaProxy集群来做 3. 自己在producer和consumer里去做 比较good,但是需要自己写程序哦 做这里有人做过了类似的:https://github.com/joshdevins……
继续阅读
IntelliJ + springmvc + freemarker 开发环境 缓存设置
工作 • 4098 浏览 • 2015-05-26 13:31
通过阅读源码搞定了 1. 先设置springmvc的缓存控制。这是最高优先级的缓存控制。一旦springmvc发现没有缓存开启,就会进行cache,如果发现缓存没开启,则会每次生成一个view(通过调用freemarker的方法来进行)。 2. 再设置freemakre的缓存控制。freemakre通过一个时间长度来控制缓存 3. 在上面两步完成之后,一般来说就可以了。但是还有一个问题是,web访问的是target目录下的classpath和WEB-INFO目录,而我们开发环境修改的模板文件不是t……
继续阅读
guzz orm使用感受
工作 • 3006 浏览 • 2015-05-13 17:23
### 前面的话 首先,guzz在09年就发布了,那时我还在读书呢。这是一款不错的软件,但这几年沉寂了,没有好好发展下来,有点可惜。 https://github.com/liukaixuan/guzz ### 功能使用感受 guzz是国人开发的一款java orm, 它的主要功能有: - 你的系统使用太多的表,或者这些表占用了1台机器太多的资源;你可以用dbgroup将不同的表分到多台数据库中(垂直分库)。具体参看第3节: TutorialGuzzXml 感受:……
继续阅读
RabbitMQ消息中件间特性
工作 • 5196 浏览 • 2015-04-30 16:15
## 消息中间件要解决的问题 ### Publis/Subscribe 保证 ### Message Priority 支持优先级 As of RabbitMQ 3.5.0, there is now in-core support for AMQP standard per-message priorities. http://stackoverflow.com/questions/10745084/rabbitmq-and-message-priority ##……
继续阅读
RocketMq(metaQ) 与 kafka
工作 • 7155 浏览 • 2015-04-29 17:08
metaQ 与 kafka metaQ的介绍可见这里: [https://github.com/killme2008/Metamorphosis/wiki/%E4%BB%8B%E7%BB%8D](https://github.com/killme2008/Metamorphosis/wiki/%E4%BB%8B%E7%BB%8D) ###他写了挺多与kafka的不一样的地方: - 文本协议设计,非常透明,支持类似memcached stats的协议来监控broker - **监控……
继续阅读
企业级分布式事务 综述
工作 • 7629 浏览 • 2015-04-27 17:28
## 基本概念 ### 本地事务 事务由资源管理器(如DBMS)本地管理 - 优点:严格的ACID - 缺点:不具备分布事务处理能力 ### 全局事务(DTP模型) TX协议:应用或应用服务器与事务管理器的接口 XA协议:全局事务管理器与资源管理器的接口 - 优点:严格的ACID - 缺点:效率非常低 ### 两阶段提交 - 优点 - 准备后,仍可提交或回滚 - 准备时,一致性检查必须OK - 准备后,事务结果仍然只在事……
继续阅读
RabbitMq Management Plugin
工作 • 1225 浏览 • 2015-04-24 13:54
Management Plugin ## Getting started rabbitmq-plugins enable rabbitmq_management If you wish to build the plugin from source, it can be built like any other. See the plugin development page for more information. The web UI is located at: ht……
继续阅读
rabbitmq Configuration
工作 • 1144 浏览 • 2015-04-24 11:29
rabbitmq server 配置 Configuration 三种配置: - environment variables - a configuration file - runtime parameters and policies ## RabbitMQ Environment Variables ## Configuration File If rabbitmq.config doesn't exist, it can be created manually.……
继续阅读
安装和配置RabbitMq in Generic Unix or Linux (BSD, Mac OS X)
工作 • 2090 浏览 • 2015-04-23 12:49
Generic Unix or Linux (BSD, Mac OS X) ##Install the Server 解压缩的路径 就是 $RABBITMQ_HOME 可以先卸载掉mac版的 brew uninstall rabbitmq ##Run RabbitMQ Server ###配置 $RABBITMQ_HOME/etc/rabbitmq/rabbitmq-env.conf 需要新建一个 #example rabbitmq-env.c……
继续阅读
RabbitMq与KafKa比较
工作 • 8569 浏览 • 2015-04-22 16:13
================================================================== 如何保证kafka的高容错性? 1. producer不使用批量接口,并采用同步模型持久化消息。 2. consumer不采用批量化,每消费一次就更新offset <th ……
继续阅读