写点什么

“微博评论”的高性能高可用计算架构

作者:Pengfei
  • 2022 年 6 月 29 日
  • 本文字数:847 字

    阅读完需:约 3 分钟

一、 要求

分析“微博评论”这个核心场景的业务特性,然后设计其高性能高可用计算架构,包括但不限于如下内容:

1.   计算性能预估(不需要考虑存储性能);

2.   非热点事件时的高性能计算架构,需要考虑是否要拆分独立的服务;

3.   热点事件时的高可用计算架构。

 

二、 计算性能预估

用户量

2022 年 6 月 1 日,微博发布 2022 年一季度财报。截至一季度末,微博月活跃用户达到 5.82 亿,同比净增 5100 万,日活跃用户达到 2.52 亿,同比净增 2200 万。

关键行为

1.  发微博;

2.  看微博;

3.  评论微博

 

三、发评论

考虑到微博是一个看得多发的少的业务,假设平均每天每人发 1 条微博评论(只考虑文字微博),则微博评论每天的发送量约为 2.5 亿条。

大部分的人发评论集中在早上 8:00~9:00 点,中午 12:00~13:00,晚上 20:00~22:00,假设这几个时间段发微博评论总量占比为 60%,则这 4 个小时的平均发微博评论的 TPS 计算如下:

2.5 亿*60%/(4*60*60)≈10K/s

 

四、看评论

由于绝大部分微博用户看微博评论的对象是大 V 和明星,因此我们假设平均一条微博评论观看人数有 100 次,则观看微博评论的次数为:

2.5 亿*100=250 亿

 

看微博评论的 QPS 计算如下:

250 亿*60%/(4*60*60)≈1000K/s

 

五、架构设计

热点事件指某个大 V 或者明星爆料或者官宣,虽然只有一两条微博,但引起大量用户在短时间内访问,给系统造成很大压力。

评论:为了保证微博系统的正常运行,可以暂时不允许评论

看评论热点事件很难预估,和事件的影响力和影响范围有关,可以考虑“多副本缓存”。

 

1. 负载均衡算法选择

游客都可以直接看评论,因此将请求发送给任意服务器都可以,这里选择“轮询”或者“随机”算法。

 

2. 业务服务器数量估算

假设 CDN 能够承载 90%的用户流量,那么剩下 10%的读评论的请求进入系统,则请求 QPS 为 1000K/s * 10% = 100K/s,由于读取评论的处理逻辑比较简单,主要是读缓存系统,因此假设单台业务服务器处理能力是 1000/s,则机器数量为 100 台,按照 20%的预留量,最终机器数量为 120 台。

六、    整本架构图

整体架构设计



多级负载均衡整体架构


多级缓存整体架构


多副本缓存


用户头像

Pengfei

关注

还未添加个人签名 2017.10.17 加入

还未添加个人简介

评论

发布
暂无评论
“微博评论”的高性能高可用计算架构_Pengfei_InfoQ写作社区