最近在学怎么做关注流,网上的资料都是说根据粉丝数量,混合使用拉模型和推模型,有点细节一直困扰我:
推模型比较容易理解,拉模型则要遍历所有关注的用户取动态,结合成时间线,但是每个用户发动态的时间是不一样的,感觉要从一个时间点开始取,比如每个关注取 1 天内的动态,最后看结果能不能构成一页,不够的话继续向前取,超出的话缓存起来。这样感觉效率很差,每个关注都要查一次,另外如果用户的关注过多,1 天内的缓存会太大,如果关注过少,会一直循环向前取,想问下拉模型的实现方式,或者还有什么更好的方法吗?
1
BBCCBB 2021-11-08 15:56:30 +08:00
写扩散, 一般来说发布的时候就写到你的关注者的 timeline 里去了.. 每个人实时维护一个 timeline..
这是针对关注你的人不多的情况, 粉丝多的就麻烦了. 可能要搞推拉结合.. |
2
Itoktsnhc 2021-11-08 16:04:03 +08:00
推的扩散太大可以考虑一下对关注的用户按照一定比例分组,实际推送到的是组这个级别。
另外时间线这个需求一般不会要求一个页面的动态数量一定得满足一个值,基本上就是差不多就结束 |
3
Itoktsnhc 2021-11-08 16:07:57 +08:00
|
4
wellsc 2021-11-08 16:11:39 +08:00
推拉结合🐶
|
7
wd 2021-11-09 07:41:40 +08:00
我理解每个人维护一个 timeline 应该是不行的,一来数据量会巨大且重复数据多,二来涉及到删除什么的很麻烦。
应该是使用类似搜索引擎的思路,只有一份数据 build 索引,然后可以通过不同维度查询。 |
8
SmiteChow 2021-11-09 10:49:40 +08:00
没那么复杂,活动是和人绑定的,拉朋友的活动聚合排序就可以了。
哲学核心理念是活动分页->聚合排序->模拟的时间线 |