微博评论高性能高可用场景
用户行为建模和性能估算
发评论
考虑到微博每天的发送量约为 2.5 亿条,由于评论相对比较简单, 有些只发相关的表情,涉及的发送量会更多,假设每天发送量约为 3.5 亿条, 考虑到热点事件的影响,最大峰值假设为 5 亿条
大部分的人发评论集中在早上 8:00~9:00 点,中午 12:00~13:00,晚上 20:00~22:00,假设这几个时间段发微博总量占比为
60%,则这 4 个小时的平均发微博的 TPS 计算如下:
3.5 亿 * 60% / (4 * 3600) ≈ 15 K/s。
热点事件相关瞬时 TPS 按照 50K/s 预估
看评论
由于绝大部分微博用户看评论的对象是大 V 和明星,因此我们假设平均一条评论看人数有 100 次,则观看评论的次数为:3.5 亿 * 100 = 350 亿。
大部分人发评论的时间段和看评论的时间段基本重合,因此看微博的平均 QPS 计算如下:
350 亿 * 60% / (4*3600) ≈ 1500K/s。
热点事件的看评论数按照 50K/s 预估。
微博高性能计算架构设计
发评论
业务特性: 是一个写操作,可以使用负载均衡
架构分析: 用户量过亿,使用多级负载均衡架构,覆盖 DNS->F5->Nginx->网关的多级负载均衡
架构设计:
负载均衡算法选择:可以选择随机算法。
服务器估算:发评论涉及的关键选择,评论内容审核,数据写入存储, 数据写入缓存,按照一个服务处理 500 的量来估算,完成 15K/s 的 TPS, 再加上一定的预估量以及热点事件的评估,预估 40 台服务器
看评论
业务特性:是一个典型的读场景操作,可以使用缓存架构,另外针对热点事件请求量非常大时,负载均衡也是需要的。
架构分析:多级负载均衡架构 + 多级缓存架构设计
架构设计:
负载均衡随机算法
假设 CDN 可以承载 90%的用户量,剩下 10%的评论进入到系统,则请求 QPS: 150K/S, 评论可以加相关缓存系统,单台业务服务器处理能力为 1000/s, 则机器数量为 150 台,按照 20%的预估量, 最终机器为 180 台。
相关示意图如下:
评论高可用计算架构设计
评论热点事件用户行为建模和性能估算
热点微博引发大量用户参与评论,引起大量用户写入以及业务访问,给系统造成非常大的压力。
评论热点事件业务特性分析
发评论:热点事件引发大量围观群众发评论, 相关的 TPS 已经无法预估。
看评论:热点事件引发大量围观群众看相关的评论,相关的 QPS 已经无法预估。
评论