写点什么

架构训练营模块二作业

用户头像
Lemon
关注
发布于: 3 小时前

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

  1. 从复杂度分析,微信用户业务复杂度不高,仅有简单的列表查看,朋友圈发布,点赞评论,以及不同的查看权限功能。但是微信是 DAU 十亿级别的 app,因此其复杂度属于高质量,低业务复杂度的模型。

  2. 可扩展性分析:因为微信用户数量级不会明显的提升,所以可以确定微信需要支持十亿级别的用户,而无需考虑用户更大量级的提升。所以不需要考虑架构的可扩展性。

  3. 高性能复杂度分析:微信属于读多写少的业务场景,但社交并不存在高并发,所以对于单机性能复杂度来说,可以加入缓存来缓解 db 压力。通过 db 读写分离进一步。对于集群来看,通过 nginx 来做反向代理分流。

  4. 高可用复杂度分析:不要求强一致性,DB 集群通过异步复制,半同步复制或者多数复制都可。

  5. 安全性:社交业务,一般安全指标满足即可。

  6. 成本:国内最大的互联网企业之一,WXG 又是最有钱的事业部,需要考虑这些吗?


架构设计


设计理由

  1. 通过负载均衡(F5,nginx)来进行用户分流

  2. web 服务器集群满足亿级用户并发需要

  3. 用户朋友圈图片/视频通过 CDN 服务缓存,提高读速度

  4. jedis-cluster 分片缓存,按照用户分片,提升性能

  5. sharding-jdbc 进行数据库分库分表,读写分离

  6. 可以考虑异地机房提升服务可用性

用户头像

Lemon

关注

Bug coder。 2018.10.08 加入

将生活带给你的如柠檬的酸楚,酿成犹如柠檬汽水味般的甘甜。

评论

发布
暂无评论
架构训练营模块二作业