模块五 - 微博评论的高性能高可用计算架构
题目
设计微博系统中”微博评论“的高性能高可用计算架构。
【作业要求】 基于模块 5 第 6 课的微博实战案例,分析“微博评论”这个核心场景的业务特性,然后设计其 高性能高可用计算架构,包括但不限于如下内容:
1.计算性能预估(不需要考虑存储性能); 2.非热点事件时的高性能计算架构,需要考虑是否要拆分独立的服务; 3.热点事件时的高可用计算架构。
2、微博评论的性能估算
根据微博用户报告,微博月活用户达 5.11 亿,日活用户 2.24 亿,中午 12 点和晚上 22 点是微博用户的黄金冲浪时段,疫情期间,微博用户日均查看疫情信息 161 亿次,3.7 万个政务微博以及 3000 多家媒体微博发布权威信息 607.6 万条,发起 3 万场疫情直播,观看人次超 30 亿
其中的微博评论包含两个业务点:写评论和看评论,以下分述
写评论
假设写评论是看评论的 1/3,则每天有约 1 亿人写评论,100 条微博的写评论数为 1/10。则写评论的
1 亿 * 10 = 10 亿, 12 点和 24 点为峰值,10 亿 *1/12 / (4 * 3600) ≈ 3 K/s
热点事件,假设为 3 亿人写评论,100 条微博有 20 评论,热点时间持续为 2 小时则为 3 亿*20*1/12/(4*3600)≈18k/s
看评论
假设正常时,平均每个用户刷 10 条微博,2.24 亿 * 10 / 3600 = 61.824 0K/s = 0.061MB/s
热点事件时,用户增加 3 倍,平均每个用户刷 100 条微博,6.72 亿 *100/ 3600=1854.72k/s=18.54MB/s
假设一台服务器 每秒处理 500 来计算,13.8
繁忙时 18.54M/s 需要 18540 * 1000 / 500 约等于 3.7 万 台服务器
正常时 0.061 M/s 需要 61* 1000 / 500 约等于 122 台服务器
看评论的服务器数量能覆盖写评论的服务器数量需求,故服务器数量为从 122 - 3.7 万之间
3、架构分析
写评论
写操作,用负载均衡,用户日活过亿,用多级负载均衡,DNS->F5->Nginx->网关的多级负载均衡
负载均衡算法,采用使用最普遍的“轮询”或“随机算法”。
微博评论与发微博和看微博属于不同的业务侧面,且热点事件发生,一条微博引发大量的评论,写评论>发微博,写评论是重要的业务点,因此,需要拆分为独立的服务器。
看评论
看评论为读场景。评论发表之后,不能修改和编辑,适合使用缓存架构。热点事件发生时,有大量的看评论需求,因此要满足负载均衡架。多级均衡负载,游客都可以直接看微博,因此将请求发送给任意服务器都可以,这里选择“轮询”或者“随机”算法
4、整体方案
看评论
看评论和看微博业务等同,采用课件的看微博架构
写评论和发微博业务等同,采用课件的写微博架构
评论