feed流的优化

关注feed流 - 读扩散

原理

读扩散需要先读取关注列表中的用户,然后分别按时间线去读取关注列表用户的动态列表,

关注feed流 - 写扩散

  • 读写比例是100:1,也就是说大部分情况都是刷Feed流看别人发的朋友圈和微博,只有很少情况是自己亲自发一条朋友圈或微博给别人看。 因此,读扩散那种很重的读逻辑并不适合大多数场景。 每次发表帖子,都会扩散为M次写操作(M等于自己的粉丝数)

读写混合模式

|方案 |优点 |缺点 |适用场景| |读扩散 |节约存储空间,发帖操作简单 |读帖操作复杂,关注人数多时是灾难 用户不活跃,很少读帖;有大V粉丝量多,但每个粉丝关注的人少| |写扩散 |读帖操作简单 发帖操作复杂,浪费存储空间;大V粉丝量多时是灾难 用户非常活跃,经常刷帖;无大V,用户粉丝量都比较少|

粉丝量大的主播发送动态,写扩展给其活跃用户,粉丝量小的,直接写扩展给其所有的粉丝。 活跃的用户上线,直接读其feed流 非活跃的用户突然登录刷Feed流时,我们一方面需要读他的feed流,另一方面需要遍历他所关注的大主播的动态列表,做一下聚合展示。在展示完后,系统还需要有个任务来判断是否有必要将该用户升级为活跃用户。 因为有读扩散的场景存在,因此即使是混合模式,

读写混合模式下,系统需要做两个判断。一个是哪些用户属于大V,我们可以将粉丝量作为一个判断指标。另一个是哪些用户属于活跃粉丝,这个判断标准可以是最近一次登录时间等。这两处判断标准就需要在系统发展过程中动态地识别和调整,没有固定公式了。

https://www.6aiq.com/article/1628640265887 https://mp.weixin.qq.com/s?__biz=MzU0OTE4MzYzMw==&mid=2247486929&idx=4&sn=e0937dc99cfe853e416a930633dd7db3&chksm=fbb2842fccc50d393183ea602d6c2a7954530dd8a0a33583f007b7cefb458566a4ff4587889a&scene=27