什么是异地双活及应用场景

依托于阿里云高速通道专线、事件总线EventBridge和MSHA(Multi-Site High Availability)多活容灾平台,消息队列RocketMQ版提供异地双活功能,通过跨实例间数据的双向同步和业务切流能力,实现业务恢复和故障恢复解耦,保障故障场景下的业务连续性。本文介绍异地双活的概念、应用场景、功能优势、使用限制和计费说明。
什么是异地双活
多活容灾MSHA是在阿⾥巴巴电商业务环境演进出来的多活容灾架构解决⽅案,可以将业务恢复和故障恢复解耦。基于灵活的流量规则调度、跨域跨云管控、数据保护等能力,实现故障场景下的业务快速切换及恢复。
消息队列RocketMQ版依赖于阿里云高速通道专线、事件总线EventBridge和多活容灾MSHA实现跨地域实例间的消息数据双向同步。和传统容灾不同的是,异地双活方案中,部署在不同数据中心的消息队列RocketMQ版并行地为业务访问提供服务,实现了资源的充分利用,避免一个或多个备份中心处于闲置状态。当一个数据中心发生故障而另一个数据中心正常运行时,可通过MSHA实现流量的切换,提供正常的消息服务,实现用户对故障无感知。
异地双活功能不仅解决了容灾本身问题,还提升了业务连续性,并且实现了资源的异地扩展。
消息队列RocketMQ版的异地双活具体实现如下:

杭州单元和上海单元分别部署了一套完整的业务系统。
MSHA接入层按照数据分流规则将业务数据路由到两个业务单元,杭州单元和上海单元的应用系统和消息队列RocketMQ版Broker集群各自处理对应地域的业务。
两个单元的Broker集群配置了异地双活功能,依赖于事件总线EventBridge提供的事件路由能力,以及云企业网CEN(Cloud Enterprise Network)提供的专有网络间的私网通信通道,Broker集群A和Broker集群B间的数据实现了双向同步,包括Topic数据、Group数据及消费位点等信息。正常情况下,杭州单元和上海单元只负责各自单元的业务,并且同时将各自单元的消息数据同步到对方单元的集群中进行容灾备份。






假设杭州单元发生灾害,整个业务系统出现故障,此时通过MSHA切流操作将整个杭州的业务切到上海单元,因为配置了异地双活,上海单元的Broker集群存储了杭州单元的业务数据,可以继续处理未完成的消息数据。在保证业务不中断的前提下排查故障并修复,做到先恢复业务再恢复故障。

当杭州单元故障恢复后,通过回切流量,将杭州单元的业务重新切回到杭州单元的系统处理,整个过程用户不感知故障,不影响用户业务体验。

使用限制
实例类型限制:异地双活功能仅企业铂金版实例支持,标准版实例不支持。

地域限制:目前仅华东1(杭州)、华东2(上海)、华北2(北京)和华南1(深圳)地域支持使用异地双活功能,并且使用前您需要提交工单申请,其他地域暂不支持该功能。

计费说明
异地双活为消息队列RocketMQ版的高级功能。若您开通了异地双活功能,消息队列RocketMQ版会按照包年包月方式进行收费;未开通则不收取异地双活功能费用。

应用场景
异地双活功能适用于以下典型业务场景:

按地域划分单元的业务场景,如物流业务。可以通过物流订单的地域将业务进行划分,将业务引流到不同地域的生产中心同时处理,提高资源利用率和业务并发度。

对业务数据可靠性有严格要求的业务场景,如金融证券等。当系统出现故障会对交易结果产生较大影响,通过异地双活可以将业务快速切换到容灾站点,并且根据同步的数据继续处理未完成的消息。

功能优势
可用性

和传统容灾方案相比,异地双活方案中所有生产中心数据实现双向同步,并且均可对外提供服务,各中心分担业务流量,提高了资源使用率。

故障快速恢复

异地双活功能够有效保障业务连续性。当其中一个生产中心发生故障,区别于传统的解决思路,不是去排查、处理和修复故障,而是立即使用切流将业务切换到其他生产中心,保证业务的连续性,将业务恢复和故障恢复解耦。

异地容量扩容

业务高速发展,受限于单地有限资源,也存在资源存储、计算网络瓶颈等问题。在消息队列RocketMQ版水平拓展能力的支撑下,使业务具备其他机房或者其它地域快速扩建的特性,减少成本浪费。




作者:码农编程进阶笔记


欢迎关注微信公众号 :码农编程进阶笔记