亿级流量系统架构之如何设计全链路99.99%高可用架构

本文介绍了在面对亿级流量时,如何设计全链路99.99%高可用架构。通过MQ集群、KV集群、实时计算链路、热数据和冷数据的高可用方案,确保系统在任何环节故障时仍能正常运行。例如,MQ故障时启用异步转同步、限流和丢弃策略,KV集群故障则采用临时扩容和内存分片存储等策略,确保大部分商家数据不受影响。该架构成功应对了大规模并发查询请求,为系统稳定性提供了保障。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们采用冷热数据分离:

  • 冷数据基于HBase+Elasticsearch+纯内存自研的查询引擎,解决了海量历史数据的高性能毫秒级的查询
  • 热数据基于缓存集群+MySQL集群做到了当日数据的几十毫秒级别的查询性能。

最终,整套查询架构抗住每秒10万的并发查询请求,都没问题。

本文作为这个架构演进系列的最后一篇文章,我们来聊聊高可用这个话题。所谓的高可用是啥意思呢?

简单来说,就是如此复杂的架构中,任何一个环节都可能会故障,比如MQ集群可能会挂掉、KV集群可能会挂掉、MySQL集群可能会挂掉。那你怎么才能保证说,你这套复杂架构中任何一个环节挂掉了,整套系统可以继续运行?

这就是所谓的全链路99.99%高可用架构,因为我们的平台产品是付费级别的,付费级别,必须要为客户做到最好,可用性是务必要保证的!

我们先来看看目前为止的架构是长啥样子的。

二、MQ集群高可用方案

异步转同步 + 限流算法 + 限制性丢弃流量

MQ集群故障其实是有概率的,而且挺正常的,因为之前就有的大型互联网公司,MQ集群故障之后,导致全平台几个小时都无法交易,严重的会造成几个小时公司就有数千万的损失。我们之前也遇到过MQ集群故障的场景,但是并不是这个系统里。

大家想一下,如果这个链路中,万一MQ集群故障了,会发生什么?

看看右上角那个地方,数据库binlog采集中间件就无法写入数据到MQ集群了啊,然后后面的流控集群也无法消费和存储数据到KV集群了。这套架构将会彻底失效,无法运行。

这个是我们想要的效果吗?那肯定不是的,如果是这样的效果,这个架构的可用性保障也太差了。

因此在这里,我们针对MQ集群的故障,设计的高可用保障方案是:异步转同步 + 限流算法 + 限制性丢弃流量

简单来说,数据库binlog采集环节一旦发现了MQ集群故障,也就是尝试多次都无法写入数据到MQ集群,此时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值