朋友圈高性能复杂度
一,朋友圈高性能复杂度
朋友圈包含的功能模块如下:
1.查看朋友圈
2.发布朋友圈
3.评论朋友圈信息
4.点赞朋友圈信息
朋友圈只包含了 4 个功能模块,业务比较简单,业务复杂度低,但是微信的用户量达到 13 亿以上,系统需要比较高的性能,所以朋友圈是属于业务复杂度低质量复杂度高的一个系统。
二,朋友圈复杂度分析
假设微信的用户是 13 亿,再预估每一个功能模块的 QPS 和 TPS,具体如下图所示:
三,查看朋友圈高性能复杂度分析
1.分析图如下:
2.架构图如下:
设计理由有如下 3 点:
1.把朋友圈的数据通过关系数据库永久的保存在数据库中
2.为了保证数据的浏览速度,需要把数据缓存在 redis 这种内存数据中
3.为了保证每一个用户的不同好友所发朋友圈的时序性,可以把朋友圈的顺序缓存在 redis 的 list 中
四,发布朋友圈高性能复杂度分析
1.分析图如下:
2,架构图如下:
设计理由有两点,具体如下:
1.把朋友圈的发布的信息通过关系数据库永久的保存在数据库中
2.为了保证数据的浏览速度,需要把数据保存在 redis 这种内存数据库中
五,评论朋友圈复杂度分析
1.分析图如下:
2,架构图如下:
设计理由如下 2 点:
1.把朋友圈的评论信息通过关系数据库永久的保存在数据库中
2.为了保证数据的浏览速度,需要把数据保存在 redis 这种内存数据库中
六,点赞朋友圈复杂度分析
1,分析图如下:
2,架构图如下:
设计理由如下:
点赞只是一个简单的点击行为,只是保存谁点赞的列表,和点赞的数量,比较简单,所以可以直接存在 redis 中
七,朋友圈最终架构图
设计理由如下 4 点:
1.朋友圈是一个业务复杂度低的系统,所以不需要对业务再进行任务分解了
2.朋友圈的用户量庞大,达到 10 亿以上,对性能要求高,所以需要业务服务器集群
3.为了保存数据的访问数据,需要 redis 这种高性能的缓存数据库
4.朋友圈的数据通过关系数据库保存永久保存。数据量大所以也是需要数据库服务器集群来分片存储
评论