写点什么

架构班模块二作业

用户头像
21°Char
关注
发布于: 刚刚

朋友圈整体复杂度分析:

  • 微信朋友圈主要分为发动态信息、浏览动态信息、评论点赞三个主要功能

  • 从业务规模上看,需要针对高性能、高可用、高可扩展三个维度做架构设计分析


发表动态复杂度分析:


浏览动态复杂度分析:

点赞评论复杂度分析

微信朋友圈整体集群架构

微信朋友圈整体单机架构

设计理由

  • 首先,在用户发表朋友圈动态时,先将数据读入 Redis 中,这样可以快速响其他用户浏览需求,因为朋友圈动态消息讲究时效性,往往最近的动态被浏览次数几率非常大,历史数据较少被浏览,因此可按时间线,将近期数据作为热点数据存入缓存,保证系统的高性能读取。

  • 其次,缓存消息可以延后批量更新到数据库中,这里数据库采用 mogodb 这种文档型数据库,可以更为灵活的存储消息、评论与图片信息。

  • 通过 LVS+NG+keepalive 的设计保证负载层高可用,将请求分发到应用服务器处理

  • 通过 sharding 策略,将数据分片保存到缓存和数据库

  • 数据库和缓存均要做高可用设计,严格将数据按照时间线区域进行分库分表处理。

  • 数据库和服务器均需要进行异地多活部署以保证容灾需要。

  • 加入 CDN 服务,保证图片和视频的快速上传下载。

  • 数据需要做跨区域同步,可采取异步方式保证效率。


用户头像

21°Char

关注

还未添加个人签名 2021.09.22 加入

还未添加个人简介

评论

发布
暂无评论
架构班模块二作业