作业
【作业要求】基于模块 5 第 6 课的微博实战案例,分析“微博评论”这个核心场景的业务特性,然后设计其高性能高可用计算架构,包括但不限于如下内容:
1)计算性能预估(不需要考虑存储性能)
2)非热点事件时的高性能计算架构,需要考虑是否要拆分独立的服务
3)热点事件时的高可用计算架构
用户行为建模和性能估算
微博评论:
看微博的人中只有少数人会发评论。根据发微博每天平均 2.5 亿条,假设观看人数 100 人中平均 10%的人发表了评论,那么每条微博就有 10 条评论,则微博评论每天的发送量约为 25 亿条。
大部分人发送微博评论的时间段和发微博的时间段基本重合,因此在这 4 个小时内,发送微博评论的平均 TPS 计算如下:
25 亿 * 60% / (4 * 3600) ≈ 100 K/s
微博评论的多级负载均衡架构
用户在看到微博后才能进行评论,微博评论和发微博可以拆分成两个服务。发微博评论可采用发微博的多级负载均衡架构,覆盖 DNS->F5->Nginx->网关,微博评论可以发给任意一台服务器,选择“轮询”或“随机”算法。区别在于微博评论的 TPS 是发微博的十倍,关键处理相似,依赖内容审核、数据存入、数据写入缓存。由于评论一般较少图片等大文件,因此按照一个服务每秒处理 2000 来估算,完成 100K/s 的 TPS,需要 50 台机器,加上一定预留量 55 台。
热点事件时的高可用架构
在发生热点事件时,可以将用户的发微博请求缓存到消息队列中,再由后台服务从消息队列中拉取请求进行处理。
评论