模块五作业
【计算性能预估】
由于绝大部分微博用户看微博的对象是大 V 和明星,因此我们假设平均一条微博观看人数有 100 次,每人对每条微博都进行评论,则微博评论的次数为:2.5 亿 * 100 = 250 亿。大部分人微博评论的时间段和发微博的时间段基本重合,因此微博评论的平均 QPS :250 亿 * 60% / (4*3600) = 1000K/s。
非热点事件
【业务特性分析】
微博评论是一个典型的写操作,因此不能用缓存,可以用负载均衡。
【架构分析】
用户量过亿,应该要用多级负载均衡架构,覆盖 DNS -> F5 -> Nginx -> 网关的多级负载均衡。
【架构设计】
1. 负载均衡算法选择
考虑到后续需要按照发微博来读取微博评论,因此选择“hash”算法。
2. 业务服务器数量估算
微博评论存入 Redis Cluster,按照一个服务每秒 50000 估算,完成 1000K/s 的 TPS,需要 20 台服务器,预留 20%,需要 25 台服务器。
热点事件
【业务特性分析】
热点事件发生后,绝大部分都是针对热点事件发生的那一条微博进行评论。
【架构设计】
热点事件导致流量打到一个缓存上,可以为评论的缓存 key 增加随机数,让数据分开存储。
评论