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

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

等领域具有颇有经验。
联系方式: knightliao AT gmail.com
联系
近一个月内十大热门文章
最热结点
分布式CAP理论综述
工作 • 2135 浏览 • 2015-08-21 00:36
##一 CAP理论简述 海量数据管理中的一致性理论,包括CAP理论,BAS理论,数据一致性理论模型,以及现有的经典数据一致性技术。其中CAP (Consistency, Availability, Partition Tolerance,) 理论是NoSQL数据库管理系统构建的基础。 CAP定律说的是在一个分布式计算机系统中,一致性,可用性和分区容错性这三种保证无法同时得到满足,最多满足两个。该定律作为猜想在2000年提出,2002年被证实。 ![image](http://img.……
继续阅读
分布式 数据库表 sharding 综述
工作 • 2980 浏览 • 2015-08-20 08:33
数据库表 sharding 综述 ## 数据库sharding ### 基本思路 - 表多:垂直划分 - 表不多但表的数据很多:水平划分 ### 切分策略 先垂直后水平 - 垂直:“聚集“,聚合 - 水平:聚合根 举例: - 社交网站:根据用户区分 - 论坛: - 垂直shard:用户和论坛 - 水平shard:Form是聚合根 Tips: - 只读字典或变化较小的表:每个shard里维护一份,可以加速读取速度(joi……
继续阅读
spring 4 带来的变动
工作 • 2250 浏览 • 2015-08-13 00:10
## spring 4 带来的变动 ### 最新版4.2.0问题 4.2.0不知道做了什么改动(没认真去研究),返回java对象时(想要返回json),对象如果有嵌套对象,则子对象无法被序列化。 4.1.7 则没有这个问题,回头有空要研究一下 ### 从3.1.2 升 4 需要进行的改动 1. binding exception 不会在exception handler里出现,如果bind 出错,框架直接报400 error 具体可见我早年提的: http://te……
继续阅读
业务应该避免的问题:事务+synchronized
工作 • 2107 浏览 • 2015-08-12 12:31
##表现分析:## 所有mysql连接池打满,tomcat拿不到任何mysql连接,无法接受请求。重启后系统正常。但过一段时间后又出现问题。 ##简单处理无法解析## 我们以为连接池太少,将c3p0连接池增长10倍,仍出现连接池不够的问题。 ##日志分析:## 1. tomcat thread log分析:发现mysql连接池打满。 2. mysql bin log分析:发现在开事务后,每条SQL操作相隔很久,最久长达30秒。 ##代码分析:## ![http:/……
继续阅读
java 内存一例浅析
工作 • 1707 浏览 • 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 ……
继续阅读
跨域登录技术讨论
工作 • 2873 浏览 • 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
工作 • 1977 浏览 • 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
工作 • 1526 浏览 • 2015-06-30 20:35
http://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html 使用异步消息来解决事务问题,解决二阶段提交问题。
继续阅读
架构:Consumer-Driven Contracts: A Service Evolution Pattern (消费者驱动的契约)
工作 • 2021 浏览 • 2015-06-30 19:48
http://martinfowler.com/articles/consumerDrivenContracts.html 大概是讲: 消费者驱动的契约描述的是服务提供者向其所有当前消费者承诺遵守的约束。一旦各消费者把自己的具体期望告知提供者,消费者驱动的契约就被创建了。在提供者方面创建的约束,确定了一个消费者驱动的契约。若提供者接受了一个消费者驱动的契约,那么它只需保证已有约束仍能得到满足,即可自行改进与修改其服务。 也就是说,一旦约定好接口约束后,在对自己做升级时,只要约束未影响,就……
继续阅读
架构:Tolerant Reader(容忍读策略)
工作 • 2417 浏览 • 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 ……
继续阅读
架构:微服务
工作 • 2160 浏览 • 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 页面多按钮 点击事件 重复的问题
工作 • 1379 浏览 • 2015-06-17 11:49
在一个页面里,有多个同种类型的按钮(很可能是一个list),我们想要捕捉它的点击事件 我们一般会这样来写: r.find(".edit-tgr").on("click", function () { } 这样,我们就为一组按钮同时设置了点击事件。 此时,如果点击了某一个按钮并触发了点击事件后,这时,如果 - 我们啥也不做:被点击的这个按钮将无法再被点击(因为事件触发后,必须重新进行注册) - 我们重新执行了上面一段代码:虽然解决了被点击的按钮……
继续阅读
Paragon NTFS for mac install
生活 • 1994 浏览 • 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广告系统初探
工作 • 2555 浏览 • 2015-06-08 21:08
## 广告准则 主要是两个,先确定目标,然后再确定在哪些广告版位上进行投放。 - 广告目标 - 广告版位 - 桌面版动态消息、 - 移动版动态消息以及 - Facebook 右边栏 ### 广告图片和视频 广告媒体类型有 图片和视频 两种。 一般来说,每个广告只能含有一张图片。规则如何:当您同时选择多个图片时,系统即会在同一个广告系列中创建多条广告,以便今后根据不同广告的表现将预算用于成效最佳的广告 此种广告在所有广……
继续阅读
rabbitmq 高可用性初探
工作 • 1873 浏览 • 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 开发环境 缓存设置
工作 • 4558 浏览 • 2015-05-26 13:31
通过阅读源码搞定了 1. 先设置springmvc的缓存控制。这是最高优先级的缓存控制。一旦springmvc发现没有缓存开启,就会进行cache,如果发现缓存没开启,则会每次生成一个view(通过调用freemarker的方法来进行)。 2. 再设置freemakre的缓存控制。freemakre通过一个时间长度来控制缓存 3. 在上面两步完成之后,一般来说就可以了。但是还有一个问题是,web访问的是target目录下的classpath和WEB-INFO目录,而我们开发环境修改的模板文件不是t……
继续阅读
guzz orm使用感受
工作 • 3461 浏览 • 2015-05-13 17:23
### 前面的话 首先,guzz在09年就发布了,那时我还在读书呢。这是一款不错的软件,但这几年沉寂了,没有好好发展下来,有点可惜。 https://github.com/liukaixuan/guzz ### 功能使用感受 guzz是国人开发的一款java orm, 它的主要功能有: - 你的系统使用太多的表,或者这些表占用了1台机器太多的资源;你可以用dbgroup将不同的表分到多台数据库中(垂直分库)。具体参看第3节: TutorialGuzzXml 感受:……
继续阅读
RabbitMQ消息中件间特性
工作 • 6207 浏览 • 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
工作 • 8140 浏览 • 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 - **监控……
继续阅读
企业级分布式事务 综述
工作 • 8435 浏览 • 2015-04-27 17:28
## 基本概念 ### 本地事务 事务由资源管理器(如DBMS)本地管理 - 优点:严格的ACID - 缺点:不具备分布事务处理能力 ### 全局事务(DTP模型) TX协议:应用或应用服务器与事务管理器的接口 XA协议:全局事务管理器与资源管理器的接口 - 优点:严格的ACID - 缺点:效率非常低 ### 两阶段提交 - 优点 - 准备后,仍可提交或回滚 - 准备时,一致性检查必须OK - 准备后,事务结果仍然只在事……
继续阅读