微信朋友圈高性能架构设计
复杂度分析
朋友圈业务跟红包不同,没有明显的高峰期和峰值需求(不发朋友圈的人瞎猜的)。假设:
日活 8 亿,流量分布在每天 6am - 12pm
平均每人每天发 2 个朋友圈动态,平均每个动态有 30 人查看,20 人点赞,10 人评论。
不考虑权限,可见设置等,可得出如下性能需求:
发朋友圈 2.5 万 TPS
查看 2.5 万 * 30 = 75 万 QPS,除文字外,朋友圈更多的是图片和视频,存储和带宽要求更高
点赞/评论 2.5 万 * 20 = 50 万 TPS
总提业务特征:
业务复杂度低
质量复杂度高
存储和带宽要求高
架构设计
设计理由
从业务量级和用户分布,采用多机房部署
业务简单,没有必要进行任务分解,直接使用任务分配的方式来扩展集群
有个操作叫“刷朋友圈”,朋友圈的访问频率非常高,所有 cache 层非常必要
海量静态资源,访问量高,所以考虑 CDN 存储
演化方向
用任务拆解的方式进行模块划分,服务单独部署
针对图片/视频压缩
单机性能压榨
版权声明: 本文为 InfoQ 作者【极客土豆】的原创文章。
原文链接:【http://xie.infoq.cn/article/6e8d51b54598540d0ea115c81】。文章转载请联系作者。
评论