写点什么

朋友圈高性能复杂度

  • 2023-01-03
    广东
  • 本文字数:761 字

    阅读完需:约 2 分钟

朋友圈高性能复杂度

一,朋友圈高性能复杂度

朋友圈包含的功能模块如下:

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.朋友圈的数据通过关系数据库保存永久保存。数据量大所以也是需要数据库服务器集群来分片存储

用户头像

还未添加个人签名 2018-04-26 加入

还未添加个人简介

评论

发布
暂无评论
朋友圈高性能复杂度_架构训练营10期_生活需要激情_InfoQ写作社区