设计微博系统中”微博评论“的高性能高可用计算架构
Q:基于模块 5 第 6 课的微博实战案例,分析“微博评论”这个核心场景的业务特性,然后设计其高性能高可用计算架构,包括但不限于如下内容:1.计算性能预估(不需要考虑存储性能);2.非热点事件时的高性能计算架构,需要考虑是否要拆分独立的服务;3.热点事件时的高可用计算架构。
A:首先参考之前分析的数据量,微博用户行为集中在 8-9、12-13、20-22 这 3 个时间段,合计 4 小时,因为评论微博的行为比发微博的行为简单方便,因此数据量较发微博也有提高。预估为发微博动作的 5-10 倍,因此可以直接用之前的发微博 tps*10=10k*10=100k/s
发微博的动作,是写操作,但是评论不需要马上发出,所以可以使用缓存;但是评论的时效不能太差,因此需要保证服务端服务器有一定规模,避免大量评论挤压。
因此可以在原有写微博的架构上做调整
整体架构调整为 reactor 模型,具体为:
1.网关集群调整消息中间件,例如 kafka 等,需要使用主备方案保证消息不丢失
2.服务器监听消费,批量进行处理。理论上服务可以减少到 5 台左右
3.热点事件时,短时间消息会激增,可能导致消息队列数据满了而无法接受,因此需要做数据分片。消息队列调整为多个节点,每个节点都为主备模式,按照轮询的方式将 3 级缓存处理的数据写入对应的队列分片内。并对服务集群进行水平扩容,提高消息吞吐能力
评论