解剖 Twitter【9】结语

2010-03-16 15:36

这个系列讨论了 Twitter 架构设计,尤其是 cache 的应用,数据流与控制流的组织等等独特之处。把它们与抗洪抢险中,蓄洪,引流,渠道三种手段相对比,便于加深理解。同时参考实际运行的结果,验证这样的设计是否能够应付实际运行中遇到的压力。

解剖一个现实网站的架构,有一些难度。主要体现在相关资料散落各处,而且各个资料的视点不同,覆盖面也不全。更严重的问题是,这些资料不是学术论文,质量良莠不齐,而且一些文章或多或少地存在缺失,甚至错误。

单纯把这些资料罗列在一起,并不能满足全景式的解剖的需要。整理这些资料的过程,很像是侦探办案。福尔摩斯探案的方法,是证据加推理。

1. 如果观察到证据 O1,而造成 O1 出现的原因,有可能是 R1,也有可能是 R2 或者 R3。究竟哪一个原因,才是真正的原因,需要进一步收集更多的证据,例如 O2,O3。如果造成 O2 出现的可能的原因是 R2 和 R4,造成 O3 出现的可能原因是 R3 和 R5。把所有证据 O1 O2 O3,综合起来考虑,可能性最大的原因必然是 (R1,R2,R3), (R2,R4), (R3,R5) 的交集,也就是 R2。这是反绎推理的过程。

2. 如果反绎推理仍然不能确定什么是最可能的原因,那么假定 R2 是真实的原因,采用演绎推理,R2 必然导致 O4 证据的出现。接下去要做的事情是,确认 O4 是否真的出现,或者寻找 O4 肯定不会出现的证据。以此循环。

解剖网络架构的方法,与探案很相似。只读一篇资料是不够的,需要多多收集资料,交叉印证。不仅交叉印证,而且引申印证,如果某一环节 A 是这样设计的,那么关联环节 B 必然相应地那样设计。如果一时难以确定 A 到底是如何设计的,不妨先确定 B 是如何设计的。反推回来,就知道 A 应该如何设计了。

解剖网站架构,不仅有益,而且有趣。

Figure 13. Sherlock Holmes,福尔摩斯探案
Courtesy http://www.fantasticfiction.co.uk/images/c0/c2053.jpg

【全文完】

登录,参与讨论前请先登录

评论在审核通过后将对所有人可见

正在加载中

移动互联网的围观者、起哄者、以及肇事者。

本篇来自栏目

解锁订阅模式,获得更多专属优质内容