前几天,杨紫琼同学在知识星球提问,说公司要切换MQ,从一个旧的服务商升级为新的服务商,问有没有什么好方案。
这个需求估计还挺普遍的,这里分享一些经验。
一、MQ架构简述
如上图,使用MQ异步通信,一般分为三层:
消息发送方:使用MQ客户端生成消息。
MQ-client::SendMsg(topic, msg);
MQ服务:中转消息。
消息接收方:使用MQ客户端消费消息。
MQ-client::RecvMsg(topic, msg, CALLBACK_FUNC);
这是一个典型的pub-sub架构,如果要替换MQ供应商,至少三个地方要替换:
发送方mq-client
MQ-server
接收方mq-client
如何平滑迁移,是今天要讨论的话题。
二、平滑迁移方案
平滑迁移的目标是:不停服,平滑升级。
如果有很多主题,需要一个一个主题的迁移,每个主题的迁移,分为