写点什么

架构实战营作业 -- 模块二

用户头像
冬瓜茶
关注
发布于: 1 小时前

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

【作业要求】


1.对照模块 2 讲述的复杂度分析方法,分析微信朋友圈的复杂度。


2.针对各个复杂度,画出你的架构设计方案(无需做备选方案,只需要最终的方案即可)。


3.给出你的架构方案中关键的设计理由。


4.3~5 页 PPT 即可,涵盖复杂度分析、架构设计、设计理由。


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


在网上找的微信朋友圈数据:每天有 7.8 亿人进入朋友圈,1.2 亿人发朋友圈,朋友圈发表量超 10 亿(点赞/评论)


按二八定律来看,如果每天 80% 的访问集中在 20% 的时间里,根据此评估微信朋友圈每日的峰值流量


a)发布朋友圈:


峰值流量:(120000000 * 0.8)/(86400 * 0.2)= 5556 TPS


b)看(刷)朋友圈:


峰值流量:(780000000 * 0.8)/(86400 * 0.2)= 36112 QPS


c)点赞/评论朋友圈:


峰值流量:(1200000000 * 0.8)/(86400 * 0.2)= 55556 TPS


2、微信朋友圈高性能复杂度应对思路



3、微信朋友圈高性能设计方案


1)为了高性能,使用双机房部署,分别部署在深圳和上海,南方用户可以访问深圳,北方用户可以访问上海;


2)nginx 做负载均衡访问到发布朋友圈服务;


3)发布朋友圈后将新建的朋友圈信息写入到 MQ 消息队列,使用 MQ 消息队列做异步处理,提升处理效率,再将数据同步到朋友圈数据库。朋友圈的数据包含文字、图片、视频,这里朋友圈数据库选择 Hbase 集群,能存储海量非结构化数据;


4)朋友圈服务获取朋友圈数据库的信息,按时间戳顺序排名朋友圈数据的消息;如果点赞、评论将触发写入到朋友圈数据库。


用户头像

冬瓜茶

关注

还未添加个人签名 2018.10.26 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营作业 -- 模块二