美文网首页
feed流设计介绍

feed流设计介绍

作者: 鬼厉 | 来源:发表于2020-01-09 12:50 被阅读0次

简介

Feed流是Feed + 流,Feed的本意是饲料,Feed流的本意就是有人一直在往一个地方投递新鲜的饲料,如果需要饲料,只需要盯着投递点就可以了,这样就能源源不断获取到新鲜的饲料。 在信息学里面,Feed其实是一个信息单元,比如一条朋友圈状态、一条微博、一条咨询或一条短视频等,所以Feed流就是不停更新的信息单元,只要关注某些发布者就能获取到源源不断的新鲜信息,我们的用户也就可以在移动设备上逐条去浏览这些信息单元。

当前最流行的Feed流产品有微博、微信朋友圈、头条的资讯推荐、快手抖音的视频推荐等,还有一些变种,比如私信、通知等,这些系统都是Feed流系统。

本文以新浪微博介绍3种feed设计的方法:
场景:用户A,有粉丝B、C、D,用户A发一条微博


  1. 拉的方式使用两张表即可实现
    微博表(微博ID,微博内容,发布人)
    关注表(博主ID)
    a)A发微博,将微博写入微博表;
    b)客户端通过查询微博接口,在关注表查询B/C/D关注的博主,再去微博表查询A发布的微博,将结果按时间排序,分页返回。
    如下图:


    图片.png

    拉的方式缺点是查询慢


  2. 推的方式需要三张表
    微博表(微博ID,微博内容,发布人)
    粉丝表(粉丝ID)
    feed表(微博ID,微博内容,接收人)
    a)A发布微博,写入微博表
    b)后端查询A的粉丝表,将微博内容和接收人写入feed表
    c)客户端查询关注表,再查询feed表获取关注的内容
    如下图:


    图片.png

推的方式缺点是数据量大,A有n个粉丝,就需要往feed表中写入n条记录,没发布一次微博,就产生n+1条数据。当n为几百万、几千万时,数据库的压力就很大。

  1. 推+拉
    推+拉的方式需要四张表
    微博表(微博ID,微博内容,发布人)
    粉丝表(粉丝ID,是否活跃)
    关注表(博主ID)
    feed表(微博ID,微博内容,接收人)
    a)A发布微博,写入微博表
    b)后端查询A的粉丝表,查找活跃的粉丝,将微博内容和接收人写入feed表
    c)活跃用户查询关注表,再查询feed表获取关注的内容
    d)非活跃用户查询关注表,再查询微博表获取关注的内容
    e)维护粉丝活跃度

如下图:


图片.png

相比于推,feed表中的数据量大幅减少。

相关文章

  • feed流设计介绍

    简介 Feed流是Feed + 流,Feed的本意是饲料,Feed流的本意就是有人一直在往一个地方投递新鲜的饲料,...

  • 常见系统架构设计

    feed流设计 如何打造千万级Feed流系统Feed 流系统设计总纲 秒杀类的高并发设计 高并发系统的设计及秒杀实...

  • feed流

    Feed流系统设计-总纲https://zhuanlan.zhihu.com/p/72882547 =======...

  • 03-feed流细节详细解析

    图片流和feed流的区别: 图片流——以图片为主体 feed流——以内容为主体 feed英文有喂养的意思,feed...

  • 对于Feed流,你了解多少呢

    当我们在分析产品、设计产品时,相信对于Feed流这个词并不陌生。但是,除了知道Feed流是APP最常见的一...

  • 系统设计 —— Feed 流

    参考资料 如何打造千万级Feed流系统TableStore Timeline:轻松构建千万级IM和Feed流系统D...

  • Feed流系统设计

    背景 Feed流:可以理解为信息流,解决的是信息生产者与信息消费者之间的信息传递问题。 我们常见的Feed流场景有...

  • Feeds流的搜索与思考

    个性化推荐的 Feed 流设计 1、是比较通用的做法,按照推荐的先后顺序组成 Feed 流内容,也就是你刚才看过的...

  • 谁家的APP,有这么性感撩人的Feed流?

    文/莔莔有神 最近一直沉浸在研究Feed流的乐趣里。作为APP最常见的信息展示方式,Feed流的产品设计其实有很多...

  • Feed流系统设计-总纲

    简介 Feed流系统特点 Feed流系统是一个数据流系统,所以我们核心要看数据。从数据层面看,数据分为三类,分别是...

网友评论

      本文标题:feed流设计介绍

      本文链接:https://www.haomeiwen.com/subject/evdyactx.html