模块二作业
一.复杂度分析
1.数据背景
(1)每天有约 7.8 亿用户访问朋友圈
(2)每天有 1.2 亿用户发朋友圈
2.数据分析
根据二八原则,假设有 0.96(1.2 * 0.8)亿用户集中在 8:00~10:00、12:00~14:00、18:00~20:00 发朋友圈,可以推算期间的平均 TPS 约为 4.5K(9600 万/6/60/60),向上取整 5K;同理,推算 7.8 亿用户进入朋友圈的 QPS 约为 28.9K(78000 万 *0.8/6/60/60),取整为 30K;同理,点赞或评论的 TPS 约为 6K(进入朋友圈人数 30K *0.2)
二.方案架构设计
1.整体架构
从推测数据可以看出,朋友圈的访问性能最高,点赞/评论和发布的性能指标接近。所以,朋友圈业务可以拆分成浏览服务、点赞/评论服务和发布服务,同时朋友圈、评论、点赞数据分开存储。
2.浏览朋友圈架构
使用高性能存储方式提高查询性能(redis 集群/本地缓存),使用负载均衡分配请求提高集群支撑 QPS 能力。
3.点赞/评论与发布架构
这两个服务性能指标相近,且业务记录的内容相似,所以架构设计相近。区别点在于:发布可以发送内容为文字、视频、图片;评论内容为文字、表情;点赞只是记录用户一个点击行为。
写服务一定要关注对数据持久层的保护,要具备削峰能力。
评论