输入“/”快速插入内容

Feed流后台系统设计

1.
背景
1.1
什么是Feeds流
Feeds流是一个持续更新并展示给用户的信息流,它将用户主动订阅的若干消息源组合在一起形成内容聚合器,帮助用户持续地获取最新的订阅源内容,常具有千人千面的个性化特点。
1.2
Feeds流的产生
传统的信息获取渠道,如电视、报纸、杂志,我们获取的信息需要从中大量阅读,才能获取感兴趣的信息,Feeds流是用来帮助我们做信息聚合,根据个人行为聚合个人想要的信息。例如,微博通过你的关注列表了解你可能想要的信息源,而后以时间轴的形式聚合各种信息,后来又出现了抖音的猜你喜欢,根据阅读时长、点赞等信息生成你的用户画像,朋友圈的Feeds流则根据好友关系聚合想要的信息
1.3
Feeds流的分类
画板
我们可以对Feeds流进行分类,针对不同应用不同场景去设计最合适的架构,实现Feeds流功能
上述三种推荐逻辑分别属于三种聚合逻辑
无需依赖关系:信息探测
单向依赖关系:信息订阅
双向依赖关系:熟人社交
画板
展示逻辑又可分为
权重推荐:依据隐含兴趣推荐信息,按权重排序展示
时间顺序展示:依据用户关系拉取信息,按时间展示
1.4
Feeds流模型中的术语
名称
说明
备注
Feed
Feed流中每一条状态或者消息都是Feed
举例:朋友圈一个状态、微博中一条微博
Feeds流
本质就是数据流,核心逻辑是服务端系统将“多个发布者的信息内容”通过“关注收藏屏蔽等关系”推送给“多个接收者”
举例:微博上的超话,新版本的微信公众号订阅信息,抖音里的视频流
三大特点:
1.
少部分人发布
2.
基于订阅行为关联关系
3.
大多数人读取信息
Timeline
Feed流类型,微博、朋友圈等都是Timeline类型等Feed流,但由于Timeline类型出现最早,使用最广泛,有时也有Timeline表示Feed流
时间轴
关注页Timeline
展示其他人Feed消息的页面,又如朋友圈,微博首页
收件箱,每个用户能看到的消息都会被存储到收件箱中
个人页Timeline
展示自己发送过的Feed消息的页面,如微信中的相册,微博的个人页等
发件箱,自己发布的消息会被记录到自己的发件箱。别人的收件箱内的消息也是从他的各个关注人的发件箱内同步过来的
写扩散
用户发布消息后,消息被记录到用户的发件箱中,立刻将发件箱内的消息同步给所有用户
推模式
读扩散
用户发布消息后,消息被记录到用户的发件箱中,消息接收方此时没有收到消息,等到消息接收方需要查看收件箱时,才会去接收方关注的所有关注人发件箱中拉取消息,完成消息同步
拉模式
2.
基于时间线的Feed流
2.1
读扩散(拉模式)