微博评论架构设计
1.1 用户量预估
2020 年 9 月微博月活用户 5.11 亿,日活 2.24 亿(数据参考《微博 2020 用户发展报告》)
1.2 用户行为建模
微博每天发送量约为 2.5 亿,看微博关注的重点都集中在大 V 和明星,假设平均每条有 100 人观看,再假设 10%的用户会对微博评论发表自己的看法,则评论发送量约为 25 亿条。
大部分查看微博的用户都喜欢看评论区,假设 90%的人都爱看评论,则评论查看次数为 2.25 x 100 x 0.9 = 225 亿。
大部分人集中在早上 8 点~9 点,中午 12 点~13 点,晚上 20 点~22 点,假设这 4 个小时流量占比为 60%。
1.3 性能需求计算
25 亿 x 60% / (4 x 3600) = 100K/s
225 亿 x 60% / (4 x 3600) = 950K/s
2. 业务分析
2.1 发表评论
业务特性分析
微博发布评论,不用实时展现,可以出现延迟,因此可以使用消息队列进行削峰操作。
架构分析
用于微博用户量巨大,因此采用多级负载均衡架构,CDN->F5->nginx->网关
架构设计
2.2 看评论
业务特性分析
看评论是一个典型的读场景,由于评论发了后不能修改,因此非常适合用缓存架构,同时由于请求量很大,负载均衡架构也需要。
架构分析
架构设计
微博评论的多级缓存架构

