架构实战营第 4 期第 5 课作业:微博评论计算架构分析
1. 用户行为建模和性能预估
发评论:
大部分用户只看不评论,且只评论热点微博,假设平均每人每天发 1 条评论,则每天评论数 2.5 亿条
大部分评论集中在早中晚 4 小时热点时间,假设占总评论数 60%,则 TPS 为:
2.5 亿*60%/(4*3600) = 10k/s
看评论:
假设平均一条微博观看次数 100 次,每条微博点开评论的概率 20%,每次平均翻看 20 条评论,则观看评论总数为:2.5 亿*100*20%*20 = 1000 亿
看评论的时间与发评论的时间大致一致,则 QPS 为:
1000 亿*60%/(4*3600) = 4000k/s
2. 非热点高性能计算架构设计
发评论:
发评论是写操作,由于用户量过亿,可采用多级负载均衡。由于服务本身不保存状态,负载均衡算法可采用轮询或随机。假设单机 500TPS 处理能力,大约需要 25 台机器。
看评论:
看评论属于热点读操作,且访问量巨大,可采用多级负载均衡+多级缓存方案。负载均衡采用轮询或随机算法。假设 CDN 承担 90%流量,计入系统的流量为 4000k*10%=400kQPS,假设单机 1000QPS 处理能力,大约需 400 台机器。
由于发评论与写评论业务访问量差异较大,为了做好业务隔离,可将评论读、写拆分为两个独立服务。
3. 热点高可用架构设计
发评论:
评论的重要性不如原微博,可采用漏桶算法,对热点微博写评论进行限流。
写评论:
由于评论大多不可修改,在多级缓存方案中,通过多副本缓存、进程内缓存,基本能承接大部分读流量。
评论