[发明专利]一种RabbitMQ集群的迁移方法及计算机系统在审
申请号: | 202110015629.3 | 申请日: | 2021-01-06 |
公开(公告)号: | CN112769617A | 公开(公告)日: | 2021-05-07 |
发明(设计)人: | 徐卫民 | 申请(专利权)人: | 武汉紫阑信息技术有限公司 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;H04L29/08 |
代理公司: | 上海金盛协力知识产权代理有限公司 31242 | 代理人: | 严帅 |
地址: | 430070 湖北省武汉市东湖新技术开发区金*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 rabbitmq 集群 迁移 方法 计算机系统 | ||
本发明公开了一种RabbitMQ集群的迁移方法及系统。该方法采用负载平衡策略避免元数据导入新RabbitMQ集群时、消息队列集中建立在某个节点上,实现消息队列在新RabbitMQ集群中消息节点上分布均衡;通过在客户端和RabbitMQ集群之间增加代理层、通过配置、重启所述代理层将客户端的连接路由到新RabbitMQ集群以实现客户端对RabbitMQ集群连接的无感切换。最后、直接创建原RabbitMQ集群消息队列到新RabbitMQ集群消息队列的、并绑定新交换机的shovel插件进行堆积消息的拉取,以避免在新的RabbitMQ集群中导致消息重复。此外、本发明的方案还提供整体操作流程的导向页面,方便用户进行操作。
技术领域
本发明涉及后台系统的升级或迁移领域,具体涉及一种RabbitMQ集群的迁方法及计算机系统。
背景技术
目前业界RabbitMQ集群迁移/升级通常采用蓝绿集群并行部署的方案,其中蓝集群为原集群、绿集群为新集群。通过将消息队列RabbitMQ的流量从原集群中的旧版本切换到新集群上的空闲版本以消除RabbitMQ系统升级时的服务停止时间。整个RabbitMQ集群迁移升级过程通常包括以下步骤:
1.部署一个新RabbitMQ集群(绿集群),在集群升级时、新集群上消息队列RabbitMQ版本可为新版本。
2.在原RabbitMQ集群(蓝集群)的控制管理页面上导出其所有元数据文件,其中所述元数据包括了虚拟主控制节点vhost,用户信息,策略(Policy),交换机信息(Exchange),队列(Queue)信息,以及队列和交换机的绑定关系等。
3.在新RabbitMQ集群(绿集群)的控制管理页面上导入第2步中导出的元数据文件。
4.在新RabbitMQ集群上创建到原RabbitMQ集群的联合队列(FederationUpstream),使得能够将原集群的消息拉取到新集群上;Federation是RabbitMQ软件系统的一个插件,能够在两个个集群之间建立一条连接,将一个RabbitMQ集群的队列(Queue)中的消息拉取到另一个RabbitMQ集群对应的队列Queue里。如果新RabbitMQ集群上还没有消费者(用于提取消息的一方),那么新RabbitMQ集群将暂时处于空闲状态。
5.开始将原RabbitMQ集群(蓝集群)的消费者切换到新RabbitMQ集群上,这一步关键是要将消费者的连接地址修改为新RabbitMQ集群(绿集群)的地址,通常在连接地址修改后需要重启消费者客户端才能生效。
6.消费者切换完成后,将由第4步配置的联合队列(federation queue)将发送至原RabbitMQ集群队列中的消息将路由至新RabbitMQ集群的队列中。
7.将原RabbitMQ集群(蓝集群)的生产者(产生消息并发送给RabbitMQ集群的一方)的连接地址配置修改为新集群(绿集群)的地址,通常需要重启生产者客户端才能生效。
8.当原RabbitMQ集群(蓝集群)上所有的连接都切换至新RabbitMQ集群(绿集群)后,且原RabbitMQ集群上不存在未消费的消息时,将老集群下线以完成整个RabbitMQ集群的迁移升级。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉紫阑信息技术有限公司,未经武汉紫阑信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110015629.3/2.html,转载请声明来源钻瓜专利网。