T11谈文艺模型(On Backpressure)

当年12306订票系统在春运时候挂掉,引起了IT界的广泛讨论。当时T11就针对这个问题提出了文艺模型。当时自己没有太多感悟,后来同学和我解释一下之后,才感慨颇多。

T11的文艺模型主要关心的就是极限吞吐。极限吞吐(sustained throughput)就是为了能够在存在很大压力的时候依然能够保持很高的吞吐。之所谓在很多大压力的时候很多模型会垮掉原因是有多方面的。比如大量连接不活跃但是占用了很多内存,或者如果是多线程模型线程切换耗CPU等。垮掉原因的本质就是因为大压力的时候系统耗费了很多资源在没有必要的地方了。解决办法就是能够提早发现这种情况,然后尽快地将一部分压力去除掉(比如拒绝连接等),以保证整体系统的可用性。这个就是T11的最主要思想。

后来云风一篇关于 RingBuffer博文 重新让我思考了这个问题。我重新阅读了一下T11的Kylin代码,主要也是关于内存管理的部分。虽然内存管理部分非常简单,但是也是存在部分策略在里面的。之后T11在微博上也和我提到了这点,就是对于一个复杂点的系统来说,比如存储系统等,如果要实现得好,至少一半以上的工作是在做OS。。无独有偶,就在前几天tencent的一个后台开发总监也提到了这个问题,关于过载保护 。思想和T11文艺模型是一样的。

T11确实是一个看过同时做过很多的人。这是他空间的一篇文章 列举了架构相关的学习材料