写点什么

微博评论高性能高可用场景

作者:风中奇缘
  • 2022 年 3 月 16 日
  • 本文字数:879 字

    阅读完需:约 3 分钟

用户行为建模和性能估算

发评论

考虑到微博每天的发送量约为 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 台。


相关示意图如下:




评论高可用计算架构设计

评论热点事件用户行为建模和性能估算

热点微博引发大量用户参与评论,引起大量用户写入以及业务访问,给系统造成非常大的压力。

评论热点事件业务特性分析

  1. 发评论:热点事件引发大量围观群众发评论, 相关的 TPS 已经无法预估。

  2. 看评论:热点事件引发大量围观群众看相关的评论,相关的 QPS 已经无法预估。



用户头像

风中奇缘

关注

还未添加个人签名 2017.11.13 加入

还未添加个人简介

评论

发布
暂无评论
微博评论高性能高可用场景_架构实战营_风中奇缘_InfoQ写作平台