写点什么

架构实战营:模块五作业

作者:刘璐
  • 2022 年 3 月 17 日
  • 本文字数:697 字

    阅读完需:约 2 分钟

架构实战营:模块五作业

题目

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

【作业要求】基于模块 5 第 6 课的微博实战案例,分析“微博评论”这个核心场景的业务特性,然后设计其高性能高可用计算架构,包括但不限于如下内容:

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

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

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


1.用户量预估

微博用户日活 2.24 亿。

2.用户行为建模

【发微博】

假设每天每人发 1 条微博。则每天微博数量约为 2.24 亿条

【评论微博】

假设 1 条微博观看人数有 100 次,100 个人中有 10 个人发表评论的人对微博进行评论。且评论集中在 8:00~9:00 点,中午 12:00~13:00,晚上 20:00~22:00,

3.性能需求计算

假设这几个时间段微博评论总量占比为 60%,则这 4 个小时的平均发微博的 TPS 计算如下:

2.24 亿*60% *10 / (4 *3600) ≈ 90k/s

4.高性能架构设计

【业务特性分析】

微博评论是写操作,不用缓存,用负载均衡。

【架构分析】

用户量过亿、,使用多级负载均衡,覆盖 DNS->F5->Nginx ->网关。

【架构设计】

(1) 负载均衡算法

发微博的时候依赖登录状态,登录状态一般都是保存在分布式缓存中的,因此评论微博的时候,将请求发送给任意服务器都可以。评论服务“按服务器性能分配”,服务器列表除了评论服务器,也可以包含一部分发微博服务器,两边的性能的阈值有所不同。

(2)业务服务器数量预估

发微博涉及几个关键的处理:内容审核(依赖审核系统)、数据写入存储(依赖存储系统)、数据写入缓存(依赖缓存系统),因此按照一个服务每秒处理 500 来估算,完成 90K/s 的 TPS,需要 187 台服务器,加上 20%预留量,230 台服务器差不多。

【架构图】


5.热点时间的高可用架构

使用消息队列对评论限流


用户头像

刘璐

关注

还未添加个人签名 2018.03.29 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营:模块五作业_刘璐_InfoQ写作平台