跨地域容灾

最近更新时间:2026-01-19 17:50:25

我的收藏

异地容灾

消息中间件在业务系统的技术架构中扮演着至关重要的角色。TDMQ Pulsar 本身已支持多可用区的容灾能力,为应对更极端的地域级灾难场景,帮助客户在发生故障时快速迁移业务并尽快恢复,故而推出跨地域容灾方案。下面对跨地域容灾方案分别从正常、故障发生时、故障恢复后三个场景进行介绍。
正常场景(A 地域正常)
为保障在地域级灾难发生时能够快速迁移业务、降低接入改造成本,需完成以下两项准备工作以开通跨地域容灾能力
1. 跨城网络连接建立,通过云联网 CCN 打通 A、B 两地的 VPC 网络,实现跨地域互通。
2. 元数据同步,通过 TDMQ Pulsar 控制台建立两地集群的元数据同步,包括命名空间、Topic、订阅、角色等。
故障场景(A 地域发生异常)
当地域级灾难发生时。TDMQ Pulsar 控制台提供域名解析切换功能,将原 A 地域使用的域名指向到目标容灾 B 地域的集群。如此可避免客户端修改接入点地址,而实现对容灾 B 地域的集群的容灾方案,保障业务的延续性。
故障恢复后(A 地域异常恢复)
A 地域恢复后,用户需要先评估是否需要将故障期间 B 地域产生的消息回写至 A 地域,以保证消息数据完整性;如需回写,请联系售后团队协助处理。
完成评估(及必要的回写)后,用户在 B 地域的集群上操作接入点域名解析的切回,切回操作执行生效后,客户端即可正常访问 A 地域。

TDMQ Pulsar 的跨地域容灾架构包括冷容灾与热容灾,下面分别对这两个容灾场景进行介绍。

跨地域冷容灾

跨地域冷容灾是一种面向地域级故障的低成本容灾方案:在异地部署备集群,平时由主集群承载业务,备集群仅通过定时同步 Topic/订阅/权限等元数据保持可接管状态,从而实现低规格部署、成本可控;当主地域发生异常时,用户可在控制台执行接入点域名解析切换,将业务快速切流至备集群承接,客户端无需更改配置,且备集群支持弹性扩容以从容应对切换后的峰值流量;待主地域恢复后,可按需将备侧产生的堆积数据回写至主集群,实现容灾闭环并保障业务连续性与数据完整性。


跨地域热容灾

跨地域热容灾是一种面向地域级故障的高可用容灾方案:基于 GEO Replication 在两地跨地域部署集群,通过 Replicator 将元数据与消息进行实时同步,从而实现消息多地复制,适用于跨境消息同步等场景;同时支持集群间元数据管理,做到一处修改、全地域同步,便于运维与运营;在同步机制上提供实时同步以确保集群间配置的一致性,并通过定时对账对数据一致性进行兜底检查,且遵循明确的读写时序:当新增元数据时先写目标集群再写源集群,当删除元数据时先写源集群再写目标集群,进一步提升业务连续性保障能力。


操作指南

2. 在备份地域创建一个专业集群,在集群购买界面,需要开启跨地域复制开关,并选择要备份的集群;

3. 在控制台的左侧导航栏选择跨地域复制,单击新建链路,配置集群的云数据同步链路:
复制链路名称:为同步链路定义一个名字,不能为空,支持数字字母以及符号 “-_=:.”,长度不超过128个字符。
链路类型:选择元数据。
源集群选择:选择要进行容灾备份的 Pulsar 集群。
目标集群选择:在不同地域选择创建好的目标集群,此处仅会显示「集群 ID」相同的集群。
复制级别:支持集群级、命名空间和 Topic 三个级别。
集群级,适用于集群级的复制。
命名空间级,适用于两地集群日常都是活跃的,不同的命名空间分布在不同地域。
4. 单击保存,完成创建。

云联网网络打通

基于 云联网 打通生产地域和备份地域的网络,建立一个网络访问通道。使得在灾难时,在生产地域的客户端可以跨地域访问到备份集群。
配置详情请参见云联网 操作指南,进行如下操作:

灾难发生时

用户决策,客户端访问切换至备份地域:
1. 通过控制台(如果可用)发起域名解析切换;
2. 如果控制台不可用,客户可联系售后架构师,由 TDMQ 服务侧发起切换。

灾难恢复后

用户决策,客户端访问切回原地域集群:
1. 用户判断是否需要进行消息回写,如需回写,请联系我们的售后团队操作;
2. 通过控制台发起域名切回,客户端正常访问原地域。

注意事项

1. 支持范围

该功能仅专业集群支持。

2. 消息回写

消息回写是在用户将流量切回原地域时的前置判断,目的是避免数据丢失,确保数据完整性。请务必在决定是否回写后再进行域名切回。
用户提供信息:
待搬迁的 Topic 列表,例如:集群 ID、命名空间或者具体的 Topic 列表。
起始时间和结束时间,Topic 中发送时间在该范围内的消息为待搬迁数据,参考字段为消息头中的 publishTime。
消息回写的影响:
大量的消息重复,服务端主观上不会去考虑源集群和目标集群的位点同步的复杂状态机,一律将搬迁消息视为新消息对待,即使历史数据已经有同一条消息,也视为两条不同的消息。如果重复消息对业务有一定影响,建议客户端做 幂等处理
较少的消息乱序。

3. 关于角色

源集群下,至少需要有一个角色 Role,可以不绑定到命名空间。目标是确保同步时角色 Role 、Token 可以与容灾集群保持一致。

4. 云联网的配置

云联网配置时,两个地域所创建的 VPC CIDR 需要错开。例如:广州10.0.0.0/16 上海10.1.0.0/16 ,如此云联网才能将这两个 VPC 连起来(IP 不会互相冲突)。

5. 域名切换生效时间

域名切换生效时间约需 5s 至 5min,包括两个部分:域名解析切换,客户端断开并重连至新集群的 Broker。

6. 灾难时切换后

灾难发生时,流量切换到容灾集群后,尽量不要在备份集群变更元数据,例如:命名空间属性、新建 Topic 等。