像微博这样的基于 follow 关系来获取信息流的模式,是用什么算法保证用户能够获得最新的信息流的

2018-05-09 09:08:35 +08:00
 guotie

这么大的用户规模,百思不得其解啊

3874 次点击
所在节点    算法
13 条回复
guotie
2018-05-09 09:20:21 +08:00
有人来指点一二吗?
guotie
2018-05-09 09:29:38 +08:00
最简单的做法,有一个用户 feed 流表,记录用户 feed 流展示的文章 id,用户关注的人,没发一条 post,就往这个表中增加一条记录

这样的话,如果一个用户被几千万人关注,那这个表要崩溃啊
jadec0der
2018-05-09 09:37:03 +08:00
你都百思了,为什么不搜索一下呢?
guotie
2018-05-09 09:38:13 +08:00
没找到
guotie
2018-05-09 09:43:50 +08:00
@jadec0der 有什么资料,指点一下
rubycedar
2018-05-09 09:44:37 +08:00
http://blog.sina.cn/dpool/blog/s/blog_53b95aec0100ujim.html 能百度到的东西就不要再问了。
7654
2018-05-09 09:46:27 +08:00
微博已经不按时间线展示了,现在热度优先
yxjxx
2018-05-09 10:12:57 +08:00
2018qcon 有讲 深度学习在微博 feed 流排序中的应用
guotie
2018-05-09 10:22:00 +08:00
@rubycedar 这是几年前的文章,说微博还是以推的方式。

假如微博上超过 1000 万粉丝的大 v 有 1000 个,平均大 v 发一条消息,需要 100 亿条记录;
超过 100 万粉丝的大 v 有 1 万个(可能远远不止 1 万个),平均大 v 发一条消息,需要 100 亿条记录;

那么假设这些大 v 每天发 5 条记录,每天需要 200 亿*5=1000 亿,

再加上剩余的低于 100 万的用户,每天记录数至少也要 1000 亿


我觉得,纯粹使用推的方式,即使做了文中的优化,也无法支撑这么大的数据量。
guotie
2018-05-09 10:28:21 +08:00
最新的明星微博粉丝排行榜:谢娜 10104 万 何炅 9296 万 杨颖 8566 万 陈坤 8225 万 赵薇 8092 万 杨幂 8018 万 姚晨 8003 万 林心如 7590 万 郭德纲 6812 万 林志颖 6774 万 邓超 6642 万 张小娴 6428 万 贾乃亮 6262 万 范冰冰 6220 万 胡歌 6066 万 赵丽颖 6066 万 陈乔恩 5046 万 唐嫣 6039 万 王力宏 5907 万 文章 5685 万 黄晓明 5620 万
jadec0der
2018-05-09 11:35:35 +08:00
puritania
2018-05-09 13:23:27 +08:00
推拉结合,数据根据冷热区分,在线活跃用户与粉丝数少的用户可以推,离线用户上线时异步拉取聚合,麻烦的是如果删除了微博如何处理,或许可以再单独加一个删除记录表进行数据过滤。
julyclyde
2018-05-09 15:32:41 +08:00
首先:
为什么要保证用户得到最新的?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/453303

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX