架构训练营模块二作业
将发朋友圈动态认为是发送一条 feed,朋友圈动态的回复认为 comment
由于微信用户量比较大,可以预估为 50 亿。基本上所有的用户都打开了朋友圈功能,用户好友上限为 5000。对于这样复杂度的系统来说,尽量拆分为更易维护和扩展的子系统更合理一些。
动态发送架构
将朋友圈动态发送设计为一个朋友圈的子系统。feed 有单独的存储中心即 feed 中心,由缓存+持久化存储实现,缓存可由 redis 实现,持久化存储可由 Hbase 实现,避免分库分表的困扰。feed 设计为两张表,一个是用户自己的 feed,单独存储,缓存用户最近发的若干条动态,一个是用户朋友圈展现的 feed,聚合最近的若干条自己和自己关注的朋友的若干条动态。
用户发 feed 时,会先有 webservice 进行逻辑处理,如果有图片则上传到文件存储,然后将 feed 存储到 feed 中心。并且更新到自己的 feed 表,并且发 kafka,异步更新朋友的朋友圈所有 feed 表中,
评论发送架构
朋友圈发评论类似,也是单独的业务子系统。
评论