万字21图!手把手教你设计一个超级牛逼的 Feed 流系统( 六 )


希望一劳永逸 , 未来系统随着用户规模增长可以自动扩容 。
希望能按量付费 , 用户少的时候费用低 , 等用户增长起来后费用在跟随用户数增长 。 如果具有上述四个特征的任何一个 , 那么都是适合于用Tablestore 。
架构实践
上面我们介绍了Feed流系统的设计理论 , 具体到不同的类型中 , 会有不同的侧重点 , 下面会逐一介绍 。
朋友圈
朋友圈是一种典型的Feed流系统 , 关系是双写关系 , 关系有上限 , 排序按照时间 , 如果有个人持续产生垃圾内容 , 那就只能屏蔽掉TA , 这一种类型就是典型的写扩散模型 。
我们接下来会在文章《朋友圈类系统架构设计》中详细介绍朋友圈类型Feed流系统的设计 。
微博
微博也是一种非常典型的Feed流系统 , 但不同于朋友圈 , 关系是单向的 , 那么也就会产生大V , 这个时候就需要读写扩散模式 , 用读扩散解决大V问题 。 同时 , 微博也是主动关注类型的产品 , 所以排序也只能是时间 , 如果按照推荐排序 , 那么效果就会比较差 。
接下里会在文章《微博类系统架构设计》中详细介绍微博类型Feed流系统的设计 。
头条
头条是最近几年快速崛起的一款应用 , 在原有微博的Feed流系统上产生了进化 , 用户不需要主动关注其他人 , 只要初始浏览一些内容后 , 系统就会自动判断出你的喜好 , 然后后面再根据你的喜好给你推荐你可能会喜好的内容 , 训练时间长了后 , 推送的内容都会是你最喜欢看的 。
私信
私信也算是一种简单的Feed流系统 , 或者也可以认为是一种变相的IM , 都是单对单的 , 没有群 。 我们后面也会有一篇文章《私信类系统架构设计》中做详细介绍 。
总结
上面我们介绍了Feed流系统的整体框架 , 主要是产品定义、同步、存储、元数据、评论、赞、排序和搜索等内容 , 由于篇幅有限 , 每一章节都介绍的比较简单 。 读者如果对某一部分看完后仍然有疑问 , 可以继续再文后提问 , 我会继续去完善这篇文章 , 希望未来读者看完这篇文章后 , 就可以轻轻松松设计出一个亿级规模的Feed流系统 。
另外 , 我们也欢迎有兴趣的读者一起来完成这个系列 , 帮忙实现朋友圈、微博、头条或者私信类型的文章 , 有任何问题都欢迎来讨论 。
万字21图!手把手教你设计一个超级牛逼的 Feed 流系统文章插图
之前 , 给大家发过三份Java面试宝典 , 这次新增了一份 , 目前总共是四份面试宝典 , 相信在跳槽前一个月按照面试宝典准备准备 , 基本没大问题 。

  • 《java面试宝典5.0》(初中级)
  • 《350道Java面试题:整理自100+公司》(中高级)
  • 《资深java面试宝典-视频版》(资深)
  • 《Java[BAT]面试必备》(资深)
分别适用于初中级 , 中高级 , 资深级工程师的面试复习 。
内容包含java基础、javaweb、mysql性能优化、JVM、锁、百万并发、消息队列 , 高性能缓存、反射、Spring全家桶原理、微服务、Zookeeper、数据结构、限流熔断降级等等 。
万字21图!手把手教你设计一个超级牛逼的 Feed 流系统文章插图
看到这里 , 证明有所收获