设计一个feed流系统

什么是feed流系统

移动互联网时代,Feed流产品是非常常见的,如朋友圈、微博、抖音等,除此之外,很多App的都会有一个模块,要么叫动态,要么叫消息广场,这些也是Feed流产品。只要大拇指不停地往下划手机屏幕,就有一条条的信息不断涌现出来。就像给宠物喂食一样,只要它吃光了就要不断再往里加,故此得名Feed(饲养)。

feed流系统分类

Feed流的分类有很多种,但最常见的分类有两种:

分类 例子 阐述
Timeline 微信朋友圈 按发布的时间顺序排序,先发布的先看到,后发布的排列在最顶端。这也是一种最常见的形式。
这种一般假定用户Feed流中的Feed不多,但是每个Feed都很重要,都需要用户看到
Rank 抖音、今日头条 按某个非时间的因子排序,一般是按照用户的喜好度排序,用户最喜欢的排在最前面,次喜欢的排在后面。
这种一般假定用户可能看到的Feed非常多,而用户花费在这里的时间有限,那么就为用户选择出用户最想看的Top N结果

Feed流中的基本概念

  • Feed:Feed流中的每一条状态或者消息都是Feed,比如微博中的一条微博就是一个Feed。
  • Feed流:持续更新并呈现给用户内容的信息流。每个人微博主页都是一个Feed流。
  • Timeline:Timeline其实是一种Feed流的类型,微博,朋友圈都是Timeline类型的Feed流,但是由于Timeline类型出现最早,使用最广泛,最为人熟知,有时候也用Timeline来表示Feed流。

两种Timeline

设计一个feed流系统_第1张图片

  • 关注页Timeline(也叫home timeline):展示多个用户的Feed消息的聚合页面(收集自当前用户所关注的其他用户的feed),比如朋友圈,微博的首页等。
  • 个人页Timeline(也叫user timeline):展示单独某个用户(自己或其他用户)发送过的Feed消息的页面,比如微博的个人页等。

比较常见的场景是,一个用户在home timeline里看到了某个很感兴趣的feed,然后进一步点开这个发布者的user timeline,查看这个发布者的其他feed内容。

实现

如果要设计一个Feed流系统,最关键的两个核心,一个是存储,一个是推送。

虽然我们只是以设计一个feed流系统来学习它的原理,但是也应该对标顶级的feed流系统来设计,通过考虑他们所面对的大数据量、高并发场景问题

你可能感兴趣的:(feeds流系统,系统设计)