首页 > 解决方案 > Twitter扇出设计

问题描述

我正在阅读 Martin Kleppmann 的《设计数据密集型应用程序》一书。在某一时刻,作者解释了 Twitter 向用户发布推文(扇出)的不同方法。根据其中一种方法,当有人发布推文时,Twitter 会将这条推文添加到发布者所有关注者的主时间线缓存中,如下图所示。 在此处输入图像描述

这是否意味着 Twitter 为其所有追随者的用户维护一个实时缓存?会不会有太多的缓存需要维护?

标签: cachingtwittersystem-design

解决方案


缓存条目太多而不是缓存太多,正好等于用户总数。

因此,这将需要大约 TB 的缓存,并且使用商品硬件可以在读取路径上很好地提供服务,但在写入时,它将对名人有很高的写入放大率。

但从维护的角度来看,这不会是一个问题,但从成本的角度来看,它会。


推荐阅读