了解Feed流的基本概念、特征以及基本分类。

什么是Feed流产品

在互联网领域,尤其现在的移动互联网时代,Feed流产品非常常见。例如我们每天都会用到的朋友圈、微博就是一种非常典型的Feed流产品,图片分享网站Pinterest、花瓣网等又是另一种形式的Feed流产品。除此之外,很多应用都会有一个模块,有些叫动态、有些叫消息广场,这些也是Feed流产品。Feed流产品已经被广泛应用在各种主流应用中。

基础概念

概念 描述
Feed Feed流中的每一条状态或者消息都是Feed,例如朋友圈中的一个状态就是一个Feed、微博中的一条微博就是一个Feed。
Feed流 持续更新并呈现给用户内容的信息流。每个人的朋友圈、微博关注页等都是一个Feed流。
Timeline Timeline是一种Feed流的类型,微博、朋友圈都是Timeline类型的Feed流。但是由于Timeline类型出现最早、使用最广泛、最为人熟知,有时也用Timeline来表示Feed流。
关注页Timeline 展示其他人Feed消息的页面,例如朋友圈、微博的首页。
个人页Timeline 展示自己发送过的Feed消息的页面,例如微信中的相册、微博的个人页。

基本特征

Feed流包含以下几种基本特征。

特征 描述
多账号内容流 Feed流系统中存在成千上万的账号,账号之间可以进行关注、取关、加好友和拉黑等操作。
非稳定的账号关系 由于存在关注、取关等操作,所以系统中的用户之间的关系就会一直在变化,这是一种非稳定的状态。
读写严重不平衡 读多写少,一般读写比例在10:1,甚至100:1以上。
消息必达性要求高 例如发送了一条朋友圈后,结果部分朋友收到信息,部分朋友没收到,出现信息不对称。

系统分类

Feed流的分类有很多种,但最经典、常见的分类有两种。
  • Timeline:按发布的时间顺序排序。先发布的先看到,后发布的排列在最上方,类似于微信朋友圈、微博,是最常见的Feed流形式。Timeline类型的产品适合用户Feed流中的Feed不多的情况,但需保证用户可以看到每一个Feed。
  • Rank:按某个非时间的因子排序,一般是按照用户的喜好度排序。用户最喜欢的排在最前面,次喜欢的排在后面。Rank一般假定用户可能看到的Feed非常多,但用户花费在这里的时间有限,所以需要为用户选择出用户最想看的Top N结果。应用场景包括图片分享、新闻推荐类、商品推荐等。
Feed流还有其他的分类标准,其他的分类标准会多出两种类型。
  • Aggregate:聚合类型。例如好几个朋友都看了同一场电影,这个就可以聚合为一条Feed:A、B、C看了电影《你的名字》。这种聚合功能比较适合应用在客户端。一般的Aggregate类型是Timeline类型 + 客户端聚合。
  • Notice:通知类型,属于功能类型。通知类型一般用于应用中的各种通知,例如私信。Notice也是Timeline类型或Aggregate类型。

方案设计核心

由于系统中的所有用户不可能全部在线,且不可能同时刷新和发布Feed,那么一个能支撑千万量级Feed流的系统,在产品上需支撑上亿量级的用户。设计一个Feed流系统,最关键的两个核心: