写点什么

架构训练营模块二作业

作者:沈益飞
  • 2021 年 12 月 18 日
  • 本文字数:847 字

    阅读完需:约 3 分钟

分析一下微信朋友圈的高性能复杂度

【作业要求】

1.对照模块 2 讲述的复杂度分析方法,分析微信朋友圈的复杂度。

2.针对各个复杂度,画出你的架构设计方案(无需做备选方案,只需要最终的方案即可)。

3.给出你的架构方案中关键的设计理由。

4.3~5 页 PPT 即可,涵盖复杂度分析、架构设计、设计理由。

【提示】

1.分析过程可以参考模块 2 第 5 课的实战案例,但是不需要将分析过程一一列举出来。


微信朋友圈复杂度总体分析

业务复杂度低,质量复杂度高

微信朋友圈的复杂度本身的业务复杂度不高,主要是发布动态,点赞,评论,广告。但是质量复杂度会比较高,例如:疫情期间,转发相关的公众号文章到朋友圈。评论后的动态跟踪。


参考文档

https://cloud.tencent.com/developer/article/1150966?from=15425


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

朋友圈:发布动态,点赞评论,相册,刷朋友圈。


微信朋友圈高性能 - 发布动态,相册,刷朋友圈

除夕的时候大量的用户发布拜年动态

  1. 单机

  2. 计算高性能:无需考虑进程模型,网络模型,缓存模型,因为微信已经是一个成型的产品了。

  3. 存储高性能:海量的动态需要存储,会涉及到,会使用关系型数据库。

  4. 集群

  5. 计算高性能:

  6. 任务分解:发布动态本身比较简单了,所以不需要再分解任务了;

  7. 任务分配:直接用负载均衡就行了。

  8. 存储高性能:

  9. 任务分解:朋友圈动态数据分片存储即可,图片存储使用 CDN。

  10. 任务分配:不使用。


发布动态架构图



微信朋友圈高性能 - 点赞评论

  1. 单机

  2. 计算高性能:进程模型和网络模型参考发布动态的高性能分析,存储模型需要使用 Redis 来存储当前用户发布的动态的点赞和评论红点。

  3. 存储高性能:使用 Redis List 存储评论和点赞记录。

  4. 集群

  5. 计算高性能:

  6. 任务分解:发布动态本身比较简单了,所以不需要再分解任务了;

  7. 任务分配:直接用负载均衡就行了。

  8. 存储高性能:

  9. 任务分解:评论和点赞红点和点赞评论记录可以使用 Redis Cluster

  10. 任务分配:不使用。


微信朋友圈高性能 - 整体架构

  1. 朋友圈业务

  2. 集群

  3. 计算高性能:

  4. 任务分配:双机房

  5. 存储高性能:

  6. 任务分配:双机房

  7. 任务分解:发布动态和点赞评论已经分开了

微信朋友圈整体架构图 - 单机房示意图


用户头像

沈益飞

关注

还未添加个人签名 2018.04.02 加入

还未添加个人简介

评论

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