写点什么

模块五作业

作者:程序员小张
  • 2023-02-04
    湖南
  • 本文字数:800 字

    阅读完需:约 3 分钟

业务特性分析

评论分为发评论和看评论,看评论属于读请求,用缓存,用负载均衡架构。写评论属于写请求,不采用缓存,采用负载均衡架构。

架构分析

用户量过亿,应该要用多级负载均衡架构,覆盖 DNS -> F5 -> Nginx -> 网关 ->消息队列 的多级负载均衡。

性能估算

发评论

假设一人一天发 0.5 条评论,则评论每天发送量为 1.2 亿。大部分人发评论的时间跟看微博的时间一致,分布在 8:00-9:00 12:00-13:00 20:00-22:00 总量占比为 60%,4 个小时平均 tps 为,1.2 亿*60%/(4*3600)= 5k/s。

看评论

假设一条评论观看次数为 50 次,则观看评论的次数为 2.5*50=125 亿。大部分看人评论和发评论的时间一致。所以复算 qps 为 125 亿*60%/(4*3600)=500k/s。

架构设计


服务拆分

“发评论”和“看评论”最好拆分服务,因为看评论的量远大于发评论,拆开可以避免看评论太多导致发不了评论。

存储架构

设计要点:

  • 写评论的存储架构采用分片架构

  • 读评论的存储架构采用集群选举

计算架构

非热点事件高性能计算架构

发评论
  • 负载均衡算法选择

负载均衡算法采用轮询或者随机算法。保证评论高可用,应该采用漏桶算法写缓冲,牺牲了时间,来保证每个评论都能显示。


  • 业务服务器数量估算

发评论和发微博的处理步骤基本一致,这里模仿发微博的,因此按照一个服务每秒处理 500 来估算,完成 5k/s 的 tps 来估算,需要 10 台服务器,加上 25%的预流量,为 15 台。

看评论
  • 负载均衡算法选择

负载均衡算法采用轮询或者随机算法,采用多级缓存架构,跟看微博一样,cdn 为缓存架构的核心。


  • 业务服务器数量估算

按照 ppt 中的,cdn 能够承载 90%的流量,那么剩下的 10%进入系统,则请求 qps 为 50k/s,假设单台业务服务器处理能力为 1000/s,则机器数量为 100 台,按照 20%的预留量,最终机器数量 80 台。


热点事件高可用计算架构

  • 负载均衡算法采用负载优先的算法,保证服务器高可用,不会宕机。

  • 保证评论高可用,应该采用漏桶算法写缓冲,牺牲了时间,来保证每个评论都能显示。

  • 必要时也开采取服务降级的手段,保证看评论优先级。


用户头像

还未添加个人签名 2021-05-29 加入

还未添加个人简介

评论

发布
暂无评论
模块五作业_「架构实战营」_程序员小张_InfoQ写作社区