架构模块 2
微信朋友圈高性能架构辅助度分析
1.微信朋友圈质量复杂度高,业务辅助度低。
2.朋友圈可以分为发朋友圈,评论,点赞,后台运营等几个维度。
3.发朋友圈不需要实时,只需要准实时,所以后台可以异步操作,且数据不要求强一致性。
4.发朋友圈,图片和视频属于单独的资源,需要 CDN 或者专用的文件服务器。
5.发朋友圈需要单独的表存储朋友圈信息,需要落地,可以采用 mysql。
6.发朋友圈需要把发送的内容写人好友对应时间线,因为实时性要求不高,采取异步写入朋友圈对应信息的 id,写入成功后,再推送朋友圈消息到用户,用户采取 pull 的模式获取朋友圈内容,这里不采用发送后读的原因为一个人的朋友个数是有限的,且不多,写容易实现且已经够用。
7.发朋友圈复杂度如下
8.朋友圈评论不需要实时,只需要准实时,数据不要求强一致性,数据复制为语句复制,后端可异步操作。
9.朋友圈评论需要落地,使用 mysql,评论圈评论需要读写分离。
10.朋友圈评论需要把内容对应 id 写入共用好友的时间线存储,存储后再推送消息到好友。
11.朋友圈评论复杂度如下
12.朋友圈点赞复杂度同朋友圈评论。
版权声明: 本文为 InfoQ 作者【慕溶枫】的原创文章。
原文链接:【http://xie.infoq.cn/article/d038943f83ee3255b5ba1203d】。未经作者许可,禁止转载。
评论