架构实战营模块 5 作业
一、评论微博计算性能估算
用户量:2020.9 月月活 5.11 亿,日活 2.24 亿(参考《微博 2020 用户发展报告》)。
1. 发评论
假设平均每人每天发 1 条微博,每条微博平均查看人数为 100 次,有 10%的用户会评论微博,则每天的评论总数为:
2.5 亿 * 100 次 * 10% = 25 亿
假设大部分人发评论集中在早上 8:00~9:00 点,中午 12:00~13:00,晚上 20:00~22:00,假设这几个时间段发评论总量占比为 60%,则这 4 个小时的平均发评论的 TPS 计算如下:
25 亿 * 60% / (4 * 3600) ≈ 100 K/s
2. 看评论
假设用户看微博时会查看 3 页评论,看评论总次数相当于看微博的次数*3,则看评论的总次数为:
2.5 亿 * 100*3 = 750 亿
假设大部分人看评论的时间段和发评论的时间段基本重合,因此看评论的平均 QPS 计算如下:
750 亿 * 60% / (4*3600) = 3000K/s
二、非热点事件时的高性能计算架构
1. 发评论
用户量 2.5 亿,发评论不需要用缓存,用 4 级负载均衡。
业务服务器数量估算
按照一个服务每秒处理 500 来估算,完成 100K/s 的 TPS,需要 100K/500 = 200 台服务器,加上一定的预留量,25 台服务器足够。
2. 看评论
看评论非常适合用分布式缓存架构,同时采用 CDN,4 级负载均衡。
业务服务器数量估算
假设 CDN 能够承载 90%的用户流量,那么剩下 10%的读评论请求会进入系统,则 QPS 为 3000K/s * 10% = 300K/s。由于读操作的处理逻辑比较简单,主要是读缓存系统,因此假设单台业务服务器处理能力是 1000/s,则机器数量为 300 台,按照 20%的预留量,最终机器数量为:
300K / 1000 * (1 + 20%) = 360 台
整体架构设计
多级负载均衡架构
多级缓存架构
三、热点事件时的高可用计算架构
发评论高可用
发评论可以使用漏桶算法变种-写缓冲来实现。
看评论高可用
可以采用多副本缓存架构来应对热点。
多副本缓存架构
评论