今天抛一个话题,根据业务现象,一起讨论其后端实现是推还是拉?
一、feed流
可以理解为一个发布订阅业务,典型业务是微博(朋友圈)。你关注了姚晨的微博,姚晨发布了消息,你的主页能看到她最新发布的消息,这个场景是推送,还是拉取呢?
画外音:微博是弱关系,关注无需对方同意,粉丝可以无上限;朋友圈是强关系,好友需要对方同意,好友个数有上线。
如果推送,姚晨发布消息的时候,要把消息ID投递到所有粉丝的主页消息队列里,推送量巨大。
如果拉取,一来主页消息无法实时更新,二来每次刷新动作非常复杂:
拉取你关注人的list
拉取这些人的消息list
对于这些人的这些消息进行rank处理,例如按照时间排序
还无法对主页进行缓存,因为只要有关注人发布消息,主页内容就会变化
还得考虑“不看谁的消息”,以及“消息不给谁看”
...
是不是觉得有点烦?如果你是架构师,你会怎么做?
继续阅读与本文标签相同的文章
-
db如何快速回滚+恢复,DBA的神技能
2026-05-21栏目: 教程
-
选redis还是memcache,源码怎么说?
2026-05-21栏目: 教程
-
Java体系化学习路线图,带走不谢!
2026-05-21栏目: 教程
-
feed流拉取,读扩散,究竟是啥?
2026-05-21栏目: 教程
-
6种高质量外链的内容类型推荐
2026-05-21栏目: 教程
