前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >架构训练营模块二作业

架构训练营模块二作业

作者头像
冬天里的懒猫
发布2021-12-16 16:49:25
3210
发布2021-12-16 16:49:25
举报

分析一下微信朋友圈的高性能复杂度 【作业要求】

  1. 对照模块2讲述的复杂度分析方法,分析微信朋友圈的复杂度。
  2. 针对各个复杂度,画出你的架构设计方案(无需做备选方案,只需要最终的方案即可)。
  3. 给出你的架构方案中关键的设计理由。
  4. 3~5页PPT 即可,涵盖复杂度分析、架构设计、设计理由。 【提示】
  5. 分析过程可以参考模块2第5课的实战案例,但是不需要将分析过程一一列举出来。
  6. 如果某个地方被卡主了,请及时联系助教或者老师讨论。

朋友圈复杂度分析: 业务复杂度:朋友圈的业务复杂度比较低,只有内容发布、查看和评论和点赞等内容。 质量复杂度:朋友圈的用户非常多,微信的用户数量都会有朋友圈功能,根据张小龙在“2021微信公开课PRO”中的演讲,每天有10.9亿用户打开微信,3.3亿用户进行了视频通话;有7.8亿用户进入朋友圈,1.2亿用户发表朋友圈,其中照片6.7亿张,短视频1亿条;有3.6亿用户读公众号文章,4亿用户使用小程序。 可知,微信朋友圈的PV每天约为7.8亿,绝大部分人都会在白天查看朋友圈,在0点-6点相对是朋友圈活跃度最低的时间段,这部分的PV忽略不计,按18小时计算。 可以得到平均的QPS为12000,考虑到在某些时间段如中午吃饭、上下班路上使用朋友圈的情况会相对集中,因此,可以考虑峰值是平均值的5倍,那么高峰期的QPS大约为60000/s。 再查看朋友圈的时候,基本上查看朋友的人都会点赞,那么点赞功能的TPS可能是查看QPS的百分之八十左右,约为50000/s 对评论朋友圈的情况,评论的概率会低于点赞,按缩减五倍计算,评论的TPS大概为10000/s 对于发布朋友圈的情况,会存在很多用户都是查看朋友圈,而不会发布朋友圈,因此与评论持平即可,TPS为10000/s

朋友圈
朋友圈

此外,还需要考虑朋友圈的业务特点,朋友圈的单条数据,查看量的上限是朋友的人数上限,微信朋友的人数,上限为5000。考虑到重复的查看次数,一条朋友圈的数据,发布之后,总的查看次数,大部分不会超过500次。大量用户的朋友圈数据会低于100。 因此对于朋友圈的架构涉及,最关键的部分是将用户分片,将用户的数据通过hash的方式分片到多个服务器,让同一个用户的数据被集中到某一个服务器来访问。

朋友圈高性能复杂度
朋友圈高性能复杂度

发布功能: 发布功能考虑到图片,gif以及短视频等内容,因此需要将这些文件放置到文件服务器上。采用分布式的文件服务器FastDFS是一个不错的解决方案。

朋友圈发布架构图
朋友圈发布架构图

点赞和评论朋友圈:

点赞和评论数据,数据量不大,但是操作的时效性要求比较高,可以考虑加一层redis缓存。数据的读写先操作缓存,之后再同步到数据库。

点赞和评论朋友圈架构图
点赞和评论朋友圈架构图

查看朋友圈:

查看朋友圈的时候,除了需要根据mysql中的数据进行渲染之外,还需要从文件服务器读取文件数据,从redis中读取点赞和动态。 此外还有广告数据,广告数据一般是链接的方式,直接加载,之后广告的内容通常都放在cdn。

查看朋友圈架构图
查看朋友圈架构图
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-12-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档