写点什么

模块五 - 课后作业

用户头像
Presley
关注
发布于: 2021 年 06 月 04 日

一、作业要求

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

【作业要求】

基于模块 5 第 6 课的微博实战案例,分析“微博评论”这个核心场景的业务特性,然后设计其高性能高可用

计算架构,包括但不限于如下内容:

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

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

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


二、作业

用户行为建模和性能估算

假设平均一条微博评论 5 次,则评论次数:2.5 亿 * 5 = 12.5 亿.

大部分人评论微博的时间和发微博时间段基本重合,因此评论微博的平均 qps 计算如下:

12.5 亿 * 60%/(4*3600) = 5w


高性能计算架构设计

【业务特性分析】

评论是一个典型的写操作,因此不能用缓存,可以用负载均衡


【架构分析】

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


【架构分析】

  1. 负载均衡算法选择

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

  1. 业务服务器数量估算

评论微博涉及几个关键处理:内容审核(依赖审核系统)、数据写入存储(依赖存储系统)、数据写入缓存(依赖缓存系统),因此按照一个服务每秒 500 来估算,完成 50k 的 TPS, 需要 100 台服务器,加上 20%预留量,120 台机器. tps 高,需要将看微博、发微博、评论微博拆到不同服务


评论微博的多级负载均衡架构


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

热点微博,用户围观后,评论会很多, 与转发量大体相当。

【业务特性分析】

评论不太重要,可以延迟或者丢弃部分评论


核心架构设计思想:既然无法预估,那就做好预防。

采用 同步改异步+缓冲所有请求+慢慢消费。应此采用 写缓冲(Buffer). 具体架构:


发布于: 2021 年 06 月 04 日阅读数: 9
用户头像

Presley

关注

还未添加个人签名 2017.10.19 加入

还未添加个人简介

评论

发布
暂无评论
模块五- 课后作业