架构实战营 模块五课后作业
设计微博系统中”微博评论“的高性能高可用计算架构。
【作业要求】
基于模块 5 第 6 课的微博实战案例,分析“微博评论”这个核心场景的业务特性,然后设计其高性能高可用
计算架构,包括但不限于如下内容:
1. 计算性能预估(不需要考虑存储性能);
2. 非热点事件时的高性能计算架构,需要考虑是否要拆分独立的服务;
3. 热点事件时的高可用计算架构。
计算性能预估
1、2020.9 月月活 5.11 亿,日活 2.24 亿(参考《微博 2020 用户发展报告》);
2、假设平均每天每人发 1 条微博(只考虑文字微博),则微博每天的发送量约为 2.5 亿条。评论微博的频率应该介于发微博和看微博之间,我们假设平均一条微博会有 10 条评论,则评论微博的总次数为 2.5 亿 x10 = 25 亿;
3、大部分人评论微博的时间段分布与发微博时间段基本重合,即高峰时段的四个小时占总量的 60%,那么这四个小时的平均评论微博的 TPS 计算如下:
25 亿 x 60% / (4x3600) = 100K/s
非热点事件时高性能计算架构
1、为了审核用户的评论信息,评论需要用户登录状态,用户量过亿,需要用到多级负载均衡架构,覆盖 DNS-F5-Nginx-网关的多级负载均衡;
2、评论微博分布式存储在服务器上,为了确保数据均衡分配,负载均衡算法选择“轮询”;
3、评论微博依赖:内容审核、数据写入存储、数据写入缓存等几个模块,按照每个服务每秒处理 500 个请求估算,需要 200 台服务器,考虑到预留空间,需要 250 台服务器。
热点事件时高性能计算架构
1、造成热点事件的微博只有 1~2 条,假设 30 分钟内有 1%-2%用户评论,且评论需经过审核通过才可以显示,可以对评论微博进行“排队”,或异步处理流程等。在异步处理过程中,做好任务调度,资源分配。采用限流、排队措施,保证磁盘写入业务流程高可用。拉取用户评论,采用降级、熔断措施,避免造成缓存穿透等情况发生。
版权声明: 本文为 InfoQ 作者【iProcess】的原创文章。
原文链接:【http://xie.infoq.cn/article/488cdc4c3569f44729af751c8】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论