模块二作业——微信朋友圈高性能复杂度分析
朋友圈性能分析
朋友圈高性能架构设计
朋友圈架构设计
(单机房架构设计如下,采用两地三机房,其他机房架构类似)
设计理由
1、查看朋友圈,发布朋友圈,点赞评论业务复杂度均不高,而且相互之间有较强关联,因此无需拆分成多个组件
2、由于入口流量很大,因此挂载了多个 nginx 服务器,并由 DNS 进行负载均衡,再有 nginx 分配到应用集群
3、对于发布朋友圈,直接写入 MySQL 数据库。MySQL 数据库需要进行分库分表。比如以日期作为分库分表的 sharding key
4、对于查看朋友圈和查看点赞评论,需要经过 Redis。由于热数据被访问的概率极高,所以 Redis 只需要缓存 1 天左右的数据,也能达到很高的缓存命中率
5、Redis 需要做成集群
6、朋友圈需要较高的可用性,因此采用两地三中心部署
评论