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

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

等领域具有颇有经验。
联系方式: knightliao AT gmail.com
联系
主题 [当前:1 ~ 20, 总共: 52]
Knight's Blog » 2015
微服务下如何进行框架的设计?
工作 • 1979 浏览 • 2015-11-19 22:33
待完善。
继续阅读
微服务下多个bunlde的交互问题
工作 • 1379 浏览 • 2015-11-19 22:32
spring启动时,会有一个父容器,然后根据有多少个 bundle 来生成 多个 子容器。每个子容器是并行的。是互相看不到对方的。但是他们都看得到父容器。 这里会出现一些问题 1. 依赖的jar包中如果要获取spring容器,怎么办?直接获取父容器就可以了。 2. 依赖的jar包中要扫描本容器的一些实现类,这在rpc框架中经常会遇到。这时依赖包如果还是使用父容器去获取bean就会找不到本容器的bean。因为父容器里没有子容器的数据啊。采取的办法是,依赖的jar要将所有context进行扫描……
继续阅读
jquery弹窗处理
工作 • 1475 浏览 • 2015-09-13 17:58
在做页面设计时不可避免的会遇到弹窗的问题,如果你使用 windows.open, 肯定会遇到 浏览器拦截的问题。 http://www.html-js.com/article/2410 这篇文章讲的很清楚原因。 解决这个问题的方法就是坚决 不要使用windows.open方法。 改而使用 内嵌form表单,然后,submit() 提交到 新页面的方法。 也就是说,当用户点击控件后,触发 click方法,然后在click方法里去 submit到新页面。这种方法 所有浏览器均可以兼容。 ……
继续阅读
分布式事务综述
工作 • 2135 浏览 • 2015-08-21 08:21
I'll present the patterns in reverse order of safety(安全) or reliability(可靠), starting with those with the highest guarantee of data integrity and atomicity under the most general circumstances 从最可靠-》最不可靠 The patterns are also roughly in reverse order……
继续阅读
分布式CAP理论综述
工作 • 1662 浏览 • 2015-08-21 00:36
##一 CAP理论简述 海量数据管理中的一致性理论,包括CAP理论,BAS理论,数据一致性理论模型,以及现有的经典数据一致性技术。其中CAP (Consistency, Availability, Partition Tolerance,) 理论是NoSQL数据库管理系统构建的基础。 CAP定律说的是在一个分布式计算机系统中,一致性,可用性和分区容错性这三种保证无法同时得到满足,最多满足两个。该定律作为猜想在2000年提出,2002年被证实。 ![image](http://img.……
继续阅读
分布式 数据库表 sharding 综述
工作 • 2346 浏览 • 2015-08-20 08:33
数据库表 sharding 综述 ## 数据库sharding ### 基本思路 - 表多:垂直划分 - 表不多但表的数据很多:水平划分 ### 切分策略 先垂直后水平 - 垂直:“聚集“,聚合 - 水平:聚合根 举例: - 社交网站:根据用户区分 - 论坛: - 垂直shard:用户和论坛 - 水平shard:Form是聚合根 Tips: - 只读字典或变化较小的表:每个shard里维护一份,可以加速读取速度(joi……
继续阅读
spring 4 带来的变动
工作 • 1819 浏览 • 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
工作 • 1710 浏览 • 2015-08-12 12:31
##表现分析:## 所有mysql连接池打满,tomcat拿不到任何mysql连接,无法接受请求。重启后系统正常。但过一段时间后又出现问题。 ##简单处理无法解析## 我们以为连接池太少,将c3p0连接池增长10倍,仍出现连接池不够的问题。 ##日志分析:## 1. tomcat thread log分析:发现mysql连接池打满。 2. mysql bin log分析:发现在开事务后,每条SQL操作相隔很久,最久长达30秒。 ##代码分析:## ![http:/……
继续阅读
java 内存一例浅析
工作 • 1363 浏览 • 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 ……
继续阅读
跨域登录技术讨论
工作 • 2401 浏览 • 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
工作 • 1553 浏览 • 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
工作 • 1127 浏览 • 2015-06-30 20:35
http://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html 使用异步消息来解决事务问题,解决二阶段提交问题。
继续阅读
架构:Consumer-Driven Contracts: A Service Evolution Pattern (消费者驱动的契约)
工作 • 1601 浏览 • 2015-06-30 19:48
http://martinfowler.com/articles/consumerDrivenContracts.html 大概是讲: 消费者驱动的契约描述的是服务提供者向其所有当前消费者承诺遵守的约束。一旦各消费者把自己的具体期望告知提供者,消费者驱动的契约就被创建了。在提供者方面创建的约束,确定了一个消费者驱动的契约。若提供者接受了一个消费者驱动的契约,那么它只需保证已有约束仍能得到满足,即可自行改进与修改其服务。 也就是说,一旦约定好接口约束后,在对自己做升级时,只要约束未影响,就……
继续阅读
架构:Tolerant Reader(容忍读策略)
工作 • 1898 浏览 • 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 ……
继续阅读
架构:微服务
工作 • 1694 浏览 • 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 页面多按钮 点击事件 重复的问题
工作 • 1075 浏览 • 2015-06-17 11:49
在一个页面里,有多个同种类型的按钮(很可能是一个list),我们想要捕捉它的点击事件 我们一般会这样来写: r.find(".edit-tgr").on("click", function () { } 这样,我们就为一组按钮同时设置了点击事件。 此时,如果点击了某一个按钮并触发了点击事件后,这时,如果 - 我们啥也不做:被点击的这个按钮将无法再被点击(因为事件触发后,必须重新进行注册) - 我们重新执行了上面一段代码:虽然解决了被点击的按钮……
继续阅读
Paragon NTFS for mac install
生活 • 1620 浏览 • 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广告系统初探
工作 • 2007 浏览 • 2015-06-08 21:08
## 广告准则 主要是两个,先确定目标,然后再确定在哪些广告版位上进行投放。 - 广告目标 - 广告版位 - 桌面版动态消息、 - 移动版动态消息以及 - Facebook 右边栏 ### 广告图片和视频 广告媒体类型有 图片和视频 两种。 一般来说,每个广告只能含有一张图片。规则如何:当您同时选择多个图片时,系统即会在同一个广告系列中创建多条广告,以便今后根据不同广告的表现将预算用于成效最佳的广告 此种广告在所有广……
继续阅读
rabbitmq 高可用性初探
工作 • 1516 浏览 • 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 开发环境 缓存设置
工作 • 4003 浏览 • 2015-05-26 13:31
通过阅读源码搞定了 1. 先设置springmvc的缓存控制。这是最高优先级的缓存控制。一旦springmvc发现没有缓存开启,就会进行cache,如果发现缓存没开启,则会每次生成一个view(通过调用freemarker的方法来进行)。 2. 再设置freemakre的缓存控制。freemakre通过一个时间长度来控制缓存 3. 在上面两步完成之后,一般来说就可以了。但是还有一个问题是,web访问的是target目录下的classpath和WEB-INFO目录,而我们开发环境修改的模板文件不是t……
继续阅读