功能介绍

最近更新时间:2024-09-02 14:53:42

我的收藏

需求场景

场景 1:异地容灾场景

Pulsar 专业版支持跨可用区部署,即在有 3 个或 3 个以上可用区的地域购买 Pulsar 集群时,可以最多选择 3 个可用区购买跨可用区实例。该实例分区副本会强制分布在各个可用区节点上,这种部署方式能够让您的实例在单个可用区不可用情况下仍能正常提供服务。但仅同城 3AZ 部署,并不符合金融客户的容灾场景,他们需要一种跨地域级别容灾,以便于发生地域级别灾难时,可以快速切换备份地域,保障业务连续性。

场景 2 :全球数据归档场景

对于一家全球性的团队来说,业务系统可能分布在全球的多个地域下,存在全球数据跨地域传输和统一数据归档的需求。从多个全球主要城市所产生的数据,通过跨地域复制传输回某个地域的数据中心,并在此进行统一的数据归档。由于这些地域中可能存在同名的 Topic,因此需要将多个地域的同名 Topic 合并到目标集群中的同一个 Topic 中。
介于上述需求场景,TDMQ Pulsar 专业版基于 GEO Replication 方案,实现跨地域的集群复制,可以支持用户用于异地容灾、全球数据归档和异地消费等场景。

技术原理介绍

Pulsar 开启跨地域复制后,集群中会启动一个 Replicator,详细可参考 理解Pulsar的跨地域复制。以上海地域复制到北京地域为例,如下图:

上海地域的 Pulsar 集群中运行 Replicator 组件,该组件中会启动 Producer-R,绑定了北京地域对端集群的 Topic1,将消息数据用生产者的方式发送到北京机房。
说明:
上海集群中生产的消息首先在本地集群中持久化,然后再被异步转发到北京集群。
上海集群 Replicator 中的 Producer-R ,与该集群的客户端 Producer1 没有任何关系。 Producer-R 配置的集群地址是北京集群地址。
复制流程描述
1. Producer1 生产消息到上海集群 Topic1;
2. 上海集群把消息持久化到 BookKeeper;
3. BookKeeper 返回成功后把消息推给 Replicator 的 Cursor;
4. Replicator 的 Cursor 通过 Producer-R 把消息发给北京集群 Topic1;
5. 北京集群 Topic1 写入 BookKeeper 成功后给上海集群 Replicator 的 Cursor 回复 ACK,上海机房 Cursor 收到 ACK 后通过 Producer-R 推送下一条消息。

操作指南

1. 在目标复制地域创建专业集群,在集群购买界面,需要开启跨地域复制开关,并选择数据源集群;
2. 通过控制台配置集群的元数据同步链路:
复制链路名称:为同步链路定义一个名字。
链路类型:选择消息级。
源集群选择:选择要进行数据源的 Pulsar 集群。
目标集群选择:在不同地域选择创建好的目标集群,此处仅会显示「集群 ID」相同的集群。
复制级别:支持集群级、命名空间和 Topic 三个级别。
集群级,适用于集群级的复制。
命名空间级,适用于两地集群日常都是活跃的,不同的命名空间分布在不同地域。
Topic 级,跨地域复制的最小粒度。
3. 创建完成后,消息级的复制任务会进入到监控界面,您可以查阅复制任务的事实复制速率、复制消息堆积等数据。

计费说明

消息级的跨地域复制任务会产生费用,元数据级不会产生。控制台提供了相应的监控指标,可以辅助观测。
跨地域消息级复制详细计费说明,请参见 专业集群计费说明

使用限制

1. 功能支持范围
仅专业集群支持该功能。
2. 链路复制方向
目前跨地域复制,不论是消息级、元数据级,均是单向复制。
3. 关于复制对象
针对同一个对象的同步任务,只能创建一个,包括更高层级的任务。
禁止删除处于同步链路的 Topic,需要先删除同步链路。
4. 覆盖问题
对于已有同名资源但配置不同,例如分区数、TTL 等属性,创建复制任务后,对目标集群的策略是不做覆盖处理。