写点什么

架构模块 5 作业

发布于: 2021 年 06 月 06 日

设计微博系统中“微博评论”的高性能高可用计算架构

1. 计算性能预估(不需要考虑存储性能)

1.1 用户量预估

2020.9 月月活 5.11 亿,日活 2.24 亿(参考《微博 2020 用户发展报告》)

1.2 用户行为建模

  • 假设平均每天每人发 1 条微博

  • 每条微博平均有 50 条评论

  • 大部分的人发微博集中在早上 8:00~9:00 点,中午 12:00~13:00,晚上 20:00~22:00

  • 这几个时间段发微博总量占 比为 60%

1.3 性能需求计算

2.5 亿 * 50 * 60% / (4 * 3600) ≈ 5 万/s

2. 非热点事件时的高性能计算架构,需要考虑是否要拆分独立的服务

2.1 业务特性分析

  • 写操作

  • 可以用负载均衡

  • 由于时效性不必太强,可以用写缓存

2.2 架构分析

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

  • 写评论时,可以先发到消息队列,再异步写入到最终存储

2.3 架构设计

2.3.1 负载均衡算法选择

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

2.3.2 业务服务器数量估算

由于有消息队列,按照一个服务每秒处理 1000 来估算,完成 50K/s 的 TPS,需要 50 台服务器

2.3.3 是否要拆分独立的服务

  • 如果是大公司,大概率会独立出来

  • 如果是初创公司,和发微博服务合并

2.3.4 架构图

TODO

3. 热点事件时的高可用计算架构

  • 自动扩容

  • 进行发评论限流


用户头像

还未添加个人签名 2018.08.01 加入

还未添加个人简介

评论

发布
暂无评论
架构模块5作业