V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
guotie
V2EX  ›  算法

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

  •  1
     
  •   guotie · 2018-05-09 09:08:35 +08:00 · 3870 次点击
    这是一个创建于 2409 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    这样的话,如果一个用户被几千万人关注,那这个表要崩溃啊
    jadec0der
        3
    jadec0der  
       2018-05-09 09:37:03 +08:00 via Android
    你都百思了,为什么不搜索一下呢?
    guotie
        4
    guotie  
    OP
       2018-05-09 09:38:13 +08:00
    没找到
    guotie
        5
    guotie  
    OP
       2018-05-09 09:43:50 +08:00
    @jadec0der 有什么资料,指点一下
    rubycedar
        6
    rubycedar  
       2018-05-09 09:44:37 +08:00 via iPhone   ❤️ 1
    http://blog.sina.cn/dpool/blog/s/blog_53b95aec0100ujim.html 能百度到的东西就不要再问了。
    7654
        7
    7654  
       2018-05-09 09:46:27 +08:00
    微博已经不按时间线展示了,现在热度优先
    yxjxx
        8
    yxjxx  
       2018-05-09 10:12:57 +08:00 via iPhone
    2018qcon 有讲 深度学习在微博 feed 流排序中的应用
    guotie
        9
    guotie  
    OP
       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
        10
    guotie  
    OP
       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
        11
    jadec0der  
       2018-05-09 11:35:35 +08:00   ❤️ 2
    puritania
        12
    puritania  
       2018-05-09 13:23:27 +08:00 via iPhone
    推拉结合,数据根据冷热区分,在线活跃用户与粉丝数少的用户可以推,离线用户上线时异步拉取聚合,麻烦的是如果删除了微博如何处理,或许可以再单独加一个删除记录表进行数据过滤。
    julyclyde
        13
    julyclyde  
       2018-05-09 15:32:41 +08:00
    首先:
    为什么要保证用户得到最新的?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2385 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:37 · PVG 23:37 · LAX 07:37 · JFK 10:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.