架构实战营作业二之朋友圈的高性能设计

401 阅读3分钟

题目

以朋友圈为例,进行高性能架构设计。

思路

老师在课上已经以红包业务为实例讲解了高性能和高可用架构设计的过程,所以这里也就照猫画虎。基本过程如下所示:

  1. 定量的业务规模和性能分析
  2. 典型场景分析和拆分
  3. 逐个场景进行方案设计和架构设计
  4. 给出总体的架构设计

业务规模调查

目前得到最为靠谱的业务规模是,张小龙在公开课中提到的数据:

有10.9亿用户打开微信,3.3亿用户进行了视频通话;
有7.8亿用户进入朋友圈,1.2亿用户发表朋友圈,其中照片6.7亿张,短视频1亿条;
有3.6亿用户读公众号文章,4亿用户使用小程序;

性能分析

其中跟题目有关的是第二条。关键数据在于1.2亿人发朋友圈,其中6.7亿照片1亿视频。可以粗略评估每天发布朋友圈的次数在8亿(共1.2人,平均下来每人要发6条?这是有多少人在朋友圈发广告啊)。按照28原则,近似估计其中的80%即6.4亿集中在最高峰的20%时间即4.8小时,那么平均每秒约有3.7万。
估计到峰值为这个数值的10倍,则朋友圈TPS预估为37万,每个人发完后同时有5个人看则QPS为185万。
这个规模远不是单机房,单数据库或单机器能够解决的,因此多机房,服务的负载均衡和数据的分库分表成为了必然。而且其中包含了大量是视频和图片,将占用海量的带宽,因此CDN必然会被引入降低看朋友圈的带宽压力。
另外朋友圈有一个值得关注的特性,冷热数据分明,一个月之前的朋友圈很少有人会去看,因此采用缓存提高热点数据的访问效率也是不二选择。历史数据则被保存到适合海量数据存储的分布式数据库,近期一般数据则采用分库分表存储,热点数据(一个月内的数据)则被缓存在redis中。

场景分析

发朋友圈场景

高性能方案

在这里插入图片描述

架构设计

在这里插入图片描述

看朋友圈场景

高性能方案

在这里插入图片描述

架构设计

在这里插入图片描述

评论朋友圈场景

高性能方案

在这里插入图片描述

架构设计

在这里插入图片描述

总体高性能设计

高性能方案

在这里插入图片描述

架构设计

在这里插入图片描述

学习总结

很快第二个模块的课程也已经结束了,总体感觉进度还是很快的。老师非常贴心的意识到速度问题,调整了课程的节奏这一点非常值得赞。
最近也是比较忙,这个模块二的作业也是拖了一周才做完,架构确实是一个很吃感觉的技术,很多东西确实是你感觉你懂了,但真正用起来却不是那么回事,不少人都是什么高并发高可靠理论很多,但一遇到实际问题确实没有思路,都是老一套。
但这个课程始终给人一种很踏实的感觉,有不少案例和实践可以参考。针对复杂度的架构设计也是很接地气,不像很多架构书讲的云里雾里,看着都懂,一用就忘。
而且老师给的案例都是那种真是工作中出现的情况,非常有代表性,在某些不经意间的细节,却暴露了高手的气质。
模块二主要是讲面向复杂度的设计如何落地,内容围绕着可扩展,高性能高可用,质量来展开,最后以红包和钱包案例来落地。
虽然内容很多但架构的4R核心理念却始终穿插其中,还有架构设计环也是时不时的出现,课程的主线非常明确。