Feed流系统采用推模式还是拉模式?

1 个回答

  • 吴江
    你要习惯任何人的忽冷忽然,也要看淡任何人的渐行渐远。
    ## 作用 Feed 流系统并不是单纯采用推模式或拉模式,而是采用**推拉结合**的消息同步策略: - **发布消息时使用推模式**:用户发布消息后,系统根据用户关注关系,将消息推送到所有关注者的收件箱。 - **读取 Feed 流时使用拉模式**:用户查看 Feed 流时,从自己的收件箱中按自增序列号顺序扫描消息。 ## 原理 - 系统设计两类核心存储: - **存储库(发件箱)**:保存用户发布的所有原始消息。 - **同步库(收件箱)**:保存推送给关注者的消息副本。 - 用户发布消息后: 1. 消息先写入发布者的存储库; 2. 系统查询其关注者; 3. 将消息副本写入各关注者的同步库。 - 用户读取 Feed 流时: 1. 直接读取自己的同步库; 2. 按 `sequence_id` 自增序列号顺序扫描; 3. 得到按时间排序的 Feed 列表。 因此,该方案通过**写时推消息、读时拉收件箱**,兼顾消息分发和高并发读取,适合 Feed 流读多写少的场景。
    发布于 2026-10-28 07:57 •IP属地 河北
    举报
    评论
    收藏