无感迁移
消息服务 for RocketMQ 无感迁移模块,专为降低集群升级、环境迁移场景下的业务影响设计。该模块支持在不中断消息生产与消费的前提下,实现源集群到目标集群的平滑迁移,全程无需修改业务代码。本指南将详细介绍迁移任务的配置步骤、参数说明及注意事项,助力快速完成迁移部署,保障消息传输的连续性与数据一致性。
前提条件
- 已完成 2个及2个以上RocketMQ 集群的创建,且目标集群必须为 RocketMQ 云产品集群。
- 源端集群与目标端集群之间的网络链路已打通,可正常通信。
- 源端、目标 RocketMQ 集群的版本需为4.9.8。
- 集群认证方式需满足:认证方式为无认证(none) ACL 使用 1.0 版本。
创建任务
- 登录百度智能云消息服务 for RocketMQ控制台,在侧边导航选中集群迁移模块。
- 在页面单击创建任务,填写新建任务配置后点击立即迁移,跳转网络配置界面。
注意:同一目标集群中只允许存在一个进行中的迁移任务,当前支持rocketmq 4.x系列集群迁移
基础信息
在基础信息填写任务相关配置项,填写完成单击下一步。
表1 基础信息配置项说明
| 配置项 | 说明 |
|---|---|
| 任务名称 | 输入任务名称,迁移任务的唯一标识,用于区分不同迁移任务。 |
| 目标集群版本 | 下拉选择待迁移到的目标 RocketMQ 集群的版本。 |
| 目标集群实例 | 下拉选择目标 RocketMQ 集群对应的具体实例。 |
| 源端集群名称 | 填写待迁移的源 RocketMQ 集群的名称。 |
| 源端集群类型 | 下拉选择源 RocketMQ 集群的类型。 |
| 源端集群 NameServer 地址 | 填写源 RocketMQ 集群的 NameServer 服务地址。 |
网络配置
- 填写任务配置后进入网络配置界面,界面展示迁移导览图以及基础信息项。在当前界面选择网络连接类型(公网访问集群/VPC专有集群)和输入name server地址,访问方式系统默认不设置。
- 填写完毕单击下一步,系统进行网络配置校验,通过后进行元数据迁移流程。
元数据迁移
支持导入主题/消费组,单击批量导入主题/消费组,导入成功展示在列表。迁移导览图可查看已导入数量和总量,并展示导入状态(已完成/未完成),迁移完成进行下一步接入点切换步骤。
注意:
1.如果存在未完成元数据导入的主题或者消费组,进入下一步后,使用未导入元数据的主题/消费组/用户,则要手动补充元数据;您可以点击返回,通过“执行状态”筛选查看“待导入”明细。
2.请确保所有客户端(生产者、消费者)的接入点修改为目标集群接入点,否则进入下一步后,未修改的客户端将无法连接目标集群。修改后流量仍会转发至源端集群,不会产生风险。如果您使用的是开源rocketmq 4.x客户端,进需要修改nameserver 接入点地址即可。
接入点切换
在接入点切换可对变更前、变更后示例进行比对,点击下一步可查看接入点修改详情。注意:请确保所有客户端(生产者、消费者)的接入点修改为目标集群接入点,否则进入下一步后,未修改的客户端将无法连接目标集群。修改后流量仍会转发至源端集群,不会产生风险。
如果您使用的是开源rocketmq 4.x客户端,需要修改nameserver 接入点地址即可。
流量切换
流量切换按照主题维度进行,按照初始状态>消费切流>生产切流>源端停读4个阶段依次进行。支持对主题进行批量检查、批量回滚、批量进入下一阶段(也可在操作项进行单个操作)。
需要注意的是:为避免元数据缺失,请尽量在消费迁移阶段避免在源端集群创建新的主题或者消费组,如您必须创建新的主题或消费组,请在本次任务结束后再次新建迁移任务完成导入。
表2 主题维度说明
| 维度 | 说明 |
|---|---|
| 初始状态 | 读写源端集群,虽然客户端接入点已完成切换,但读写流量依旧转发至源端集群。 |
| 消费切流 | 生产者仍然写源端集群,消费者同时消费源端集群和目标集群的流量。此阶段消费速率会下降,可能造成消息堆积,建议增加消费节点或尽快进入下一阶段。 |
| 生产切流 | 生产者只写目标集群,消费者同时消费源端集群和目标集群的流量。需要等待源端集群存量消息消费完成方可进入下一阶段。此阶段消费速率会下降,可能造成消息堆积,建议增加消费节点或尽快进入下一阶段。 |
| 源端停读 | 生产者只写目标集群,消费者只消费目标集群流量,此时消息迁移完成,读写流量均在目标集群。 |
任务列表
迁移任务以列表形式展示,支持按照任务名称进行搜索,迁移流程进行一半的任务也展示在列表中,单击任务名称可继续进入迁移流程。
表3 任务列表说明
| 列表项 | 说明 |
|---|---|
| 任务名称 | 迁移任务的标识名称,单击任务名称可进入配置流程。 |
| 目标集群名称 | 迁移对应的目标 RocketMQ 集群名称。 |
| 目标集群版本 | 目标 RocketMQ 集群的版本。 |
| 源端集群名称 | 待迁移的源 RocketMQ 集群名称。 |
| 源端集群类型 | 源 RocketMQ 集群的部署类型。 |
| 迁移状态 | 当前迁移任务的执行阶段,支持按照迁移任务对列表进行筛选。状态类型:网络配置、元数据迁移、切换接入点、流量切换、迁移完成和任务终止。 |
| 操作 | 在操作列对任务进行终止和删除操作,同时选中任务后在列表上方可对任务进行批量删除或终止。终止:终止该迁移任务。删除:删除该迁移任务,注意:迁移任务删除无法恢复,请谨慎操作。 |
