刷朋友圈、刷微博,背后是 Feed 流。核心就一个问题:新动态怎么送到粉丝的时间线?
一、拉模式(Pull / 读扩散)
粉丝刷首页时,实时去关注的人那里查最新动态,再聚合排序。
-
优点:写简单,存储省(不存时间线副本)。 -
缺点:大 V 粉丝多,一次拉取要查几百人,读慢。
二、推模式(Push / 写扩散)
你发一条,立刻往每个粉丝的时间线里推一份。
-
优点:粉丝读极快(直接读自己的收件箱)。 -
缺点:大 V 发一条要写百万份,写爆炸;取关还要清理。
三、折中:推拉结合
-
普通用户用推(粉丝少,写成本低,读快)。 -
大 V 用拉(粉丝去大 V 主页拉,不往百万粉丝推)。 -
粉丝少的人看推,关注大 V 多的看拉,互补。
四、面试速记
-
拉模式:读时聚合,写简读慢,适合大 V 场景。 -
推模式:写时扩散,读快写爆,适合普通用户。 -
主流方案:推拉结合(大 V 走拉)。 -
时间线存储常用 Redis + 落库。
五、一句话带走
Feed 流没有银弹:普通用户推、大 V 拉,推拉结合是工业界标配。被问就先说两种模式利弊,再抛折中。
系统设计面试
更多 Java 面试速通,关注公众号持续更新。

