RocketMQ应用端迁移的一个方案记录

存在一个老RocketMQ要迁移到新RocketMQ(比如阿里云切换到腾讯云)

大致方案:
1、消费端增加双重消费(即消费“老MQ”也消费“新MQ”),生产端照样生产到“老MQ”
双重消费代码,比较繁琐,每个Consumer新增一个类继承,然后使用rocketmq2的配置,rocketmq2配置对应新MQ

@Component
@RocketMQMessageListener(
        nameServer = "${rocketmq2.name-server}",
        accessKey = "${rocketmq2.consumer.access-key}",
        secretKey = "${rocketmq2.consumer.secret-key}",
        consumerGroup = "group_xxx",
        topic = "topic_xxx"
)
public class XxxConsumerMigrate extends XxxConsumer {

}

2、生产端切换生产到“新MQ”(调换rocketmq和rocketmq2的配置,生产端一般都是直接读取的rocketmq配置,直接调换就实现生产端的切换)

3、消费端恢复单消费(删掉Migrate类,删除rocketmq2配置)

以上每个步骤对应1次发版,需要注意的就是不同应用之间的切换时间协调


觉得内容还不错?打赏个钢镚鼓励鼓励!!👍