异地容灾
消息中间件在业务系统的技术架构中,作为非常重要的组件。TDMQ Pulsar 本身支持了多可用区的容灾能力,为了解决当发生地域级灾难时,客户能够快速迁移业务,确保业务的连续性,故而推出跨地域容灾方案。
下面对跨地域容灾方案进行介绍。
在正常场景下,业务在 A 地域访问 Pulsar 服务端,用户需要完成两个主要动作:
1. 跨城网络连接建立,通过云联网 CCN 打通跨地域的 VPC 网络;
2. 元数据同步,通过 Pulsar 控制台建立两地的集群元数据同步,包括命名空间、Topic、订阅、角色等。
异常发生时。TDMQ Pulsar 控制台提供域名解析切换功能,将原 A 地域使用的域名指向到目标容灾 B 地域的集群。如此可避免客户端修改接入点地址,而实现对容灾 B 地域的集群方案,保障业务的延续性。
A 地域异常恢复后。用户首先需要判断是否要将 B 地域所产生的消息回写至 A 地域,以确保消息的完整性,如需回写,请联系我们的售后团队操作。接着,用户在 B 地域的集群操作接入点域名解析切回,切回操作执行后,客户端即可正常访问 A 地域。
操作指南
容灾功能启动配置
1. 在备份地域,创建专业集群,在集群购买界面,需要开启跨地域复制开关,并选择要备份的集群;
2. 通过控制台配置集群的元数据同步链路:
复制链路名称:为同步链路定义一个名字。
链路类型:选择元数据。
源集群选择:选择要进行容灾备份的 Pulsar 集群。
目标集群选择:在不同地域选择创建好的容灾集群,此处仅会显示「集群 ID」相同的集群。
复制级别:支持集群级和命名空间两个级别。
集群级,适用于集群级的冷备。
命名空间级,适用于两地集群日常都是活跃的,不同的命名空间分布在不同地域,地域间互为主备。
云联网网络打通
灾难发生时
用户决策,客户端访问切换至备份地域:
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 至 5mins,包括两个部分:域名解析切换,客户端断开重连至新集群的 Broker。
6.灾难时切换后
灾难发生时,流量切换到容灾集群后,尽量不要在备份集群变更元数据,例如:命名空间属性、新建 Topic 等。