Bootstrap

微信朋友圈高性能复杂度分析

一、复杂度分析

  • 发朋友圈

  • 查看朋友圈

  • 评论

  • 点赞

微信2021年Q1财报显示微信月活12亿,

根据朋友圈的功能及财报数据分析可以定位微信朋友圈的高性能复杂度在第一象限

二、朋友圈高性能方案整体架构

三、红包整体架构国架图 -- 单机房示意图

四、设计理由

1、计算高性能:

共拆分两个微服务,分别处理朋友圈业务及评论点赞业务

理由:考虑到评论点赞业务与朋友圈业务的附属功能,并且评论点赞tps也会非常大,与朋友圈的访问量相比是指数级增长,所以独立出来方便独立功能扩缩容,并且方便系统降级的需要。

三机房部署

理由:从不多个网站信信息显示微信2021年Q1财报显示微信月活12亿,日活平均在4000w,这个量级配得上三机房,一旦机房出问题会给企业带来巨大损失和负面影响。

2、存储高性能:

redis cluster做缓存,redis下游使用mongodb做存储,应用load数据时优先访问redis,后续架构迭代升级时也可以考虑二层redis缓存;

理由:考虑朋友圈的访问量具大,并且频繁刷新朋友圈会很频繁,所以中间增加一层或者二层redis缓存应对频繁刷新,选用mongodb理由第一 nosql存储更方便更灵活,并且朋友圈信息 评论点赞读多写少,比较适合用mongo。

朋友圈和评论点赞使用同一套redis集群和mongodb集群,相比维护两套集群减少很多成本,当数据达到一定量级时再考虑拆成两个独立集群存储。