写点什么

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

用户头像
Rabbit
关注
发布于: 刚刚

一、评论微博_计算性能估算


1.1【用户量】日活 2.5 亿,还是假设平均每天每人发一条微博


1.2【性能估算】

我们假设每条微博有 5 人评论,根据发微博和看微博的时间集中在早上 8:00-9:00, 中午 12:00-13:00,晚上 20:00-22:00,我们可预估,在这四个小时平均 TPS 如下:


2.5 亿 * 5 * 60% / (4 * 3600) = 50k/s


二、非热点事件时的高性能计算架构

2.1【业务特性分析】

跟发微博一样,这是一个写操作,不需要缓存,由于用户量很大,需要使用多级负载均衡


2.2【架构分析】

用户量过亿,需要使用多级负载均衡架构,即 DNS -> F5 -> Nginx -> 网关


【架构设计】

1、负载均衡算法选择

跟发微博一样,评论也需要依赖用户的登录状态,由于登录状态一般保存在分布式缓存如 redis 中,因此将请求发给任何一台业务服务器都可以,这里使用轮训即可(假设所有的服务器配置一样)


2、业务服务器数量估算

跟发微博一样,评论也涉及内容审核(依赖审核系统)、数据写入存储(依赖存储系统)、数据写入缓存(依赖缓存系统),  按照一台服务器每秒处理 1000 来估算,完成 50k/s 的 TPS,需要 50 台服务器,加上一定的预留量,这里 60 台服务器就可以了


3、非热点时间时的高性能计算架构,需要考虑是否要拆分独立的服务

为了系统的性能提升和可用性,评论微博需要拆分为独立的服务


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


微博高性能计算架构-整体架构设计


微博的多级缓存整体架构

由于微博评论和发微博一样没有缓存,因此微博业务整体的缓存架构,就是看微博的多级缓存架构


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

3.1 微博热点事件用户行为建模和性能估算

热点事件是指某个大 V 或明星爆料或官宣,虽然只有一两条微博,但引起大量用户在短事件内访问,给系统造成很大压力


【微博评论】

虽然热点事件的微博可能只有 1-2 条,但是会有很多用户来评论,这里的评论很难估算,因此评论接口需要做好限流、排队、降级、熔断的措施来预防


3.2 微博热点事件业务特性分析

【微博评论】

微博评论的重要性和影响力也同样不如原微博,且评论之后,当前用户不需要马上看到自己的评论,只需要尽量保证写成功即可


3.3 微博热点事件计算高可用架构分析

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


【架构设计分析】

由于微博评论的重要性和影响力也同样不如原微博,只需要尽量少丢失请求即可,这里考虑使用”漏桶算法”的限流策略,并且设置尽量大的缓存队列


微博热点事件计算高可用架构示意图


用户头像

Rabbit

关注

还未添加个人签名 2018.07.17 加入

还未添加个人简介

评论

发布
暂无评论
设计微博系统中"微博评论"的高性能高可用计算架构