操作场景

若旧集群版本不能直接升级到新版本集群时,可以通过切换集群的方式,将业务从旧集群切换到新集群。本文指导用户将业务从旧集群切换到新集群。

方案说明

创建新集群,然后在业务中开启新的 Consumer 指向集群,再把所有已存在的 Producer 指向新集群。该过程中,请勿关闭旧 Consumer。

这样用户的所有新消息都会生产到新集群里,新开启的 Consumer 会消费这些新消息;旧 Consumer 仍在继续消费旧集群的消息。从而保证切换 RabbitMQ 集群时,整个业务不中断。

操作步骤

步骤一:创建新集群

  1. 详细操作请参考创建 RabbitMQ 集群

  2. 在集群详情页面,查看集群的 vip,详情可参考查看集群信息

  3. 在新集群中创建元数据。包括用户、队列等。

    注意

    新集群中的用户、队列等信息需要与旧集群保持一致。

步骤二:配置业务

  1. 在业务中开启新的 Consumer,并指向新集群的 VIP。

    • 若当前业务中的 Consumer 服务有 n 个,那么就需开启 n 个新的 Consumer 指向新集群的 VIP。

    • 此时,新 Consumer 只会消费新集群的消息。因此,请勿关闭旧的 Consumer,让他们继续消费旧集群的消息。

  2. 将业务中所有的 Producer 指向新集群的 VIP,无需开启新的 Producer。

  3. 等待若干时间,确保旧集群的消息已经消费完成,就可以关闭和删除业务中的旧 Consumer 服务。

步骤三:删除源集群

确保业务切换完成后,可删除源集群。详情参考删除集群