写点什么

架构实战营模块五作业

用户头像
maybe
关注
发布于: 4 小时前
架构实战营模块五作业

答案


  1. 性能估算

微博日活量 2.5 亿,假设每人每天评论微博次数为 4 次,则评论总次数 2.5 亿*4 = 10 亿次 。大部分的评论微博集中在早上 8:00~9:00 点,中午 12:00~13:00,晚上 20:00~22:00,假设这几个时间段评论微博总量占比为 60%,则这 4 个小时的平均发微博的 TPS 计算如下:10 亿 * 60% / (4 * 3600) ≈ 4w/s。假设读评论是发评论次数的 100 倍,则 QPS 约为 400w/s。热点微博评论次数、看评论次数都会成倍增长。


  1. 业务特性分析

  • 评论微博是写操作,不能使用缓存,需要负载均衡。

  • 看评论是读操作,且评论后一般都不修改,且请求量非常大,需要缓存架构、负载均衡架构。

  • 考虑热点事件


  1. 架构分析

  • 读写请求量都非常大,使用 4 级负载均衡架构。

  • 读请求量非常大,使用 5 级缓存架构,尤其 CDN 缓存的设计很关键。

  • 读写请求量级差异很大,把评论微博拆分为评论和看评论连个微服务,针对性优化。

  • 热点事件评论、看评论量都成倍增长。为了保证评论请求不丢失,通过写缓冲方式,先把评论请求写入消息队列,业务服务器从消息队列中拉取请求慢慢处理。看评论采用多缓存副本和应用缓存,分散负载,降低单个服务器压力。


  1. 架构设计

  • 负载均衡算法选择

评论微博依赖登录状态,登录状态一般都是保存再分布式缓存系统中,因此评论微博的时候,将请求发送给任意服务器都可以,这里选择“轮询”或随机算法。

  • 业务服务器数量估算

写:一台业务服务器按照 TPS 500/s 来估算,需要业务服务器数量 4w / 500 ≈ 80 台,按照 20%预留量,总共需 100 台业务服务器。

读:假设 CDN 能够承载 90%的用户流量,剩下 10%的读请求进入系统,按照一台业务服务器 TPS 1000/s 来估算,需要业务服务器数量 400w * 10% / 1000 ≈ 400 台,按照 20%预留量,总共需 500 台业务服务器。

  • 评论多级负载均衡架构设计

  • 看评论多级负载均衡架构设计


  • 看评论多级缓存架构设计

  • 评论缓冲架构


用户头像

maybe

关注

还未添加个人签名 2019.03.25 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块五作业