前言

feeds流在互联网零碎中利用的十分宽泛,能够说是咱们每天都要用到的,比方微信朋友圈、知乎、抖音微博等,动静以瀑布流的模式出现,凡是带点社交性能,都会有feeds模块,这些feeds来源于用户的好友或者关注用户,形成咱们的虚构社交广场.

难点

用户量小,qps低的时候,怎么设计都能够,然而当用户上百万、千万级,如何保障以下几点:

  • 存储怎么选,用户关系和feeds又怎么存?
  • 如何提供可能稳固扛住上百万级qps流量的服务?
  • 如何保障时延稳固在不影响用户体验的范畴内?

读扩散和写扩散

某个用户公布了一条feed,如果扩散到好友的社交圈中,比方在朋友圈中,A发了一条朋友圈,如何让B看到,常见的扩散形式包含两种.这里以朋友圈为例,用户A有一百个微信好友;

读扩散:记录A与100个好友之间的好友关系,每次刷新朋友圈时,先去找到这一百个好友,而后拉取这一百个好友的动静,依照工夫排序展现在朋友圈中;
写扩散:为A保护一个收件箱,A的好友每次公布动静时,都往这个收件箱中发送一条记录,A每次刷新朋友圈时,只须要从收件箱中拉取记录即可;
特色:
tobecontinue