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

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

等领域具有颇有经验。
联系方式: knightliao AT gmail.com
联系
主题 [当前:1 ~ 20, 总共: 159]
Knight's Blog » 工作
你的博客变慢的可能原因
974 浏览 • 2017-05-21 17:12
本博客系统大约是在我四年前写的吧。记得那时我和师兄在做米搜资源平台,做了一套业务框架,觉得好看就拿来用了。 四年期间,虽有过多次修整,运行效果其实不错。但在近一年来,速度不知道为啥很慢。具体表现为启动博客后速度很快,但运行时间过长后,速度就非常慢,基本是在5-10s左右,有时甚至10几秒,无法忍受。 后台代码很简单,数据量级也非常小,为了解决做这个问题,我什么方法都试过了,什么监控啊,优化啊,甚至为此还做了读写分离。。。实验证明,没啥用,问题不在于此。 我就奇怪,像 http://ww……
继续阅读
百度网盘搜索引擎
1491 浏览 • 2017-02-07 23:40
先占个贴。 春节末尾几天无事,花2-3天时间,写了一个网盘搜索引擎(并入sov5搜索引擎中),目前已经收录百万级别的网盘数据。 网址是 https://pan.sov5.cn 可以看最近热映的电影哦~ 欢迎大家拍砖。 ![](http://wx2.sinaimg.cn/mw690/006oy5Ulgy1fcfdqvbauzj318g0ks773.jpg) ![](http://wx4.sinaimg.cn/mw690/006oy5Ulgy1fcfdva0j40j317g1……
继续阅读
微读2.0发布
1172 浏览 • 2016-11-26 16:28
微读2.0( http://100weidu.com ) 是继我做 sov5搜索( http://www.sov5.cn ) 之后又一款我非常喜欢、重视,并且我个人也是重度用户的个人作品。 在之前的sov5产品中,目前每天承接了全国网民几十万次搜索,这些数字中,我本人工作日每天也贡献了几百次,它已是我工作必不可手的搜索引擎。 对于这款新产品微读,目前微读已经收录了数十万篇精品文章,随着我的机器算法的升级,这个数字每天正在膨胀。并且,作为技术人的态度,这些工作都是全自动化的。我希望,在不远的未来,……
继续阅读
处理 waiting ttfb too long 的一次经历
3524 浏览 • 2016-11-15 13:36
近几天一直有人反应我的网站速度时好时坏,我一直不在意,觉得应该不会是服务的问题,是网络的问题好嘛! 今天试了一下,发现确实是这样的,chrome下反应某个URL时,出现惊人的 waiting ttfb too long 的问题。(时间长达20s) 在网上查了一下,[http://fex.baidu.com/blog/2015/01/chrome-stalled-problem-resolving-process/](http://fex.baidu.com/blog/2015/01/chrome……
继续阅读
pfrock : 提供微服务(SOA)架构能力的 统一mock服务
2392 浏览 • 2016-02-27 10:29
# pfrock https://github.com/knightliao/pfrock A plugin-based server for running fake HTTP and socket services (especially SOA service) using Python. _ (`-. _ .-') .-. .-') ( (OO ) (……
继续阅读
pkg_resources.ResolutionError: No script named '??'
1643 浏览 • 2016-02-25 22:42
晚上想要将python变成一个可执行文件时, http://www.django-china.cn/topic/1464/ 一直出现这个错误, 而且,在linux环境下正常work, 但是在mac环境下一直不行。 应该是环境出问题了,但找到。 最后 我调试 pkg_resources.py 这个类,直击 python 动态库中。 从中,我发现我明明转入 版本0.2,但是他动态链接的时候却一直是0.1,奇怪! 不过我貌似瞬间了解知道为什么了,应该就是 “链接不到正确的版……
继续阅读
微服务下如何进行框架的设计?
2090 浏览 • 2015-11-19 22:33
待完善。
继续阅读
微服务下多个bunlde的交互问题
1467 浏览 • 2015-11-19 22:32
spring启动时,会有一个父容器,然后根据有多少个 bundle 来生成 多个 子容器。每个子容器是并行的。是互相看不到对方的。但是他们都看得到父容器。 这里会出现一些问题 1. 依赖的jar包中如果要获取spring容器,怎么办?直接获取父容器就可以了。 2. 依赖的jar包中要扫描本容器的一些实现类,这在rpc框架中经常会遇到。这时依赖包如果还是使用父容器去获取bean就会找不到本容器的bean。因为父容器里没有子容器的数据啊。采取的办法是,依赖的jar要将所有context进行扫描……
继续阅读
jquery弹窗处理
1560 浏览 • 2015-09-13 17:58
在做页面设计时不可避免的会遇到弹窗的问题,如果你使用 windows.open, 肯定会遇到 浏览器拦截的问题。 http://www.html-js.com/article/2410 这篇文章讲的很清楚原因。 解决这个问题的方法就是坚决 不要使用windows.open方法。 改而使用 内嵌form表单,然后,submit() 提交到 新页面的方法。 也就是说,当用户点击控件后,触发 click方法,然后在click方法里去 submit到新页面。这种方法 所有浏览器均可以兼容。 ……
继续阅读
分布式事务综述
2242 浏览 • 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理论综述
1774 浏览 • 2015-08-21 00:36
##一 CAP理论简述 海量数据管理中的一致性理论,包括CAP理论,BAS理论,数据一致性理论模型,以及现有的经典数据一致性技术。其中CAP (Consistency, Availability, Partition Tolerance,) 理论是NoSQL数据库管理系统构建的基础。 CAP定律说的是在一个分布式计算机系统中,一致性,可用性和分区容错性这三种保证无法同时得到满足,最多满足两个。该定律作为猜想在2000年提出,2002年被证实。 ![image](http://img.……
继续阅读
分布式 数据库表 sharding 综述
2501 浏览 • 2015-08-20 08:33
数据库表 sharding 综述 ## 数据库sharding ### 基本思路 - 表多:垂直划分 - 表不多但表的数据很多:水平划分 ### 切分策略 先垂直后水平 - 垂直:“聚集“,聚合 - 水平:聚合根 举例: - 社交网站:根据用户区分 - 论坛: - 垂直shard:用户和论坛 - 水平shard:Form是聚合根 Tips: - 只读字典或变化较小的表:每个shard里维护一份,可以加速读取速度(joi……
继续阅读
spring 4 带来的变动
1943 浏览 • 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
1806 浏览 • 2015-08-12 12:31
##表现分析:## 所有mysql连接池打满,tomcat拿不到任何mysql连接,无法接受请求。重启后系统正常。但过一段时间后又出现问题。 ##简单处理无法解析## 我们以为连接池太少,将c3p0连接池增长10倍,仍出现连接池不够的问题。 ##日志分析:## 1. tomcat thread log分析:发现mysql连接池打满。 2. mysql bin log分析:发现在开事务后,每条SQL操作相隔很久,最久长达30秒。 ##代码分析:## ![http:/……
继续阅读
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 ……
继续阅读