文档中心>消息队列 Pulsar 版>操作指南>迁移集群>虚拟集群平滑迁移至专业集群

虚拟集群平滑迁移至专业集群

最近更新时间:2025-05-16 14:09:51

我的收藏

适用场景

为满足不同使用场景下的用户需求,TDMQ Pulsar 提供了专业集群虚拟集群两种产品形态。
虚拟集群由于其存在稳定性风险,我们已于 2023年停止新增。专业集群具备更强的产品能力、更加完善的控制台(管理、续费、扩容等),为了提供更好的服务,对于您已经在使用中的虚拟集群,我们提供了集群间平滑迁移的能力,支持虚拟集群平滑迁移至专业集群
说明:
虚拟集群平滑升级专业集群需要前置检查及判断,如果您在控制台实例详情页面无法找到该按钮,可以联系 腾讯云客服提交工单

能力说明

集群的数据面迁移过程对用户几乎透明,即迁移过程平滑(接入点无需调整,用户业务代码无需改造)。
迁移过程:
1. 系统将根据专业集群的规格进行扣款。开始迁移时,在订单界面可以看到扣款状态为处理中;迁移过程中,若有问题发生回滚,订单自动退款;迁移完成后,订单状态已完成且计时正式开始。
2. 在控制台专业集群列表界面,可以看到迁移后的集群信息,可以完成后续的管理、升配、续费等操作。

平滑的前置条件

平滑迁移有一个前置条件:部分接入点地址由于集群创建较早,或用特殊方式打通网络,这种情况下接入点无法平滑的迁移到新的集群。
因此用户需要提供正在使用的接入点地址信息,以确认可行性。

操作入口

通过 Pulsar 控制台 进入虚拟集群列表页面,点击您想升级的集群 id 进入实例详情页面,在实例详情页面基本信息框右上角您可以看见“升级专业版”按钮。如您无法找到该按钮,可以联系 腾讯云客服提交工单

操作流程

1. 发起迁移,前端会发起对当前接入点地址的校验,若存在非标接入点时会弹窗提示,您需要根据提示修改客户端接入地址为“标准接入点”;
2. 目标规格选择,页面会展示该集群最近 7 天 TPS 及最近 7 天存储大小,您可以根据当前虚拟集群的使用情况选择相应规格的专业集群;
3. 接入点扫描,服务端将扫描客户端是否有使用非标接入点;
4. 发起升级,迁移动作开始执行。

可能出现的情况及解决方案

1. 消息重复
已实现通过 individual ack 的进度同步,以尽量减少迁移过程中重复消息的数量。但是迁移过程中的重复可能无法完全避免,通常重复时间不超过 1min 内,有需要请用户提前做好幂等处理。
2. 消息乱序
集群迁移都可能存在的一个问题,无论哪种方案都不能完全避免迁移过程中的乱序情况,需要提前周知消息的消费者
3. 监控数据不准确
切换集群时,可能会造成瞬时监控数据不准确,通常 1-2 min 可以恢复。
4. 生产耗时抖动
切换集群时,可能会有短暂的生产耗时抖动,类似集群升级过程中的耗时都通,通常 1min 内可以恢复。
5. 消息轨迹异常
数据同步的过程中,会有消费进度同步的消息产生,用户在使用消息查询时会看到此类消息。查询消息详情在迁移过程中,会有一定影响,可能出现无法查看的情况。
6. 迁移时长
整个迁移时长和命名空间的数量、生产流量以及消息存储的数据量有关。对于一个命名空间,1000 TPS、100G消息存储,通常在 1h 内可以完成集群迁移;数据量大的情况下,例如 1T 存储大约需要 2h。
7. 老集群保留时间
迁移完成后,腾讯云产研侧会等待 1-3 天,再将老物理集群上的资源清理掉。清理后,将无法再回滚。
8. 消息积压问题
迁移过程消费进度的同步是通过用户的主题进行的,所以用户主题中会有一些内部消息存在,这些消息在消费的时候会在服务端过滤掉,业务实际上并不会消费到这些消息。对于没有消费者订阅的主题,会出现消息堆积的情况。
9. 消息的复制范围
在消息的复制过程中,由于 Pulsar 的实现机制,只能保证复制老集群中 TTL 范围内的消息到新集群中。如果您的消息保留时间比较大,且需要同步保留时间范围内的所有数据,则需要先调整 TTL 配置。
10. 客户端断连
在迁移的最后阶段会触发主题 unload 操作,从而触发客户端 lookup,通常客户端 lookup 发起阶段会自动获取新集群地址。

迁移原理

技术方案

采用 Pulsar Geo Replication 方案,开启跨集群双向复制,可以实现数据和消息进度的同步,以满足集群迁移的需求。


迁移主流程

迁移主要流程如下图所示,每个环节成功后进入下一步。

1. 控制台操作发起迁移动作,由平台发起发货,您在支付订单后,开始搭建新的专业集群。
2. 集群元数据同步,命名空间、主题、订阅、角色、namespace policies 等。
3. 开启跨集群数据同步。
4. 切换集群,运营平台下发租户切集群指令,主动触发旧集群上主题的 unload,触发客户端 lookup,lookup 阶段返回新集群地址信息。
5. 确认用户数据已经迁移成功后,关闭跨集群数据同步,并清理旧集群资源。
6. 您可在控制台看到新的集群。