RabbitMQ——使用Shovel插件迁移数据
前言
公司的RabbitMQ集群要升級(jí)最新穩(wěn)定版本,升級(jí)方案:新搭建一套集群,將數(shù)據(jù)遷移到新的集群,應(yīng)用連接到新的集群。
因?yàn)橄到y(tǒng)可以接受短暫停機(jī)時(shí)間,所以采用Shovel插件將舊集群的數(shù)據(jù)遷移到新集群。經(jīng)過分析,需要遷移的數(shù)據(jù)主要有兩種:
隊(duì)列中積壓的消息;
延遲隊(duì)列的消息;
安裝插件
啟動(dòng)插件
在新集群中的每一臺(tái)服務(wù)器上,執(zhí)行以下命令啟動(dòng)shovel插件:
rabbitmq-plugins enable rabbitmq_shovel rabbitmq-plugins enable rabbitmq_shovel_management
驗(yàn)證插件
進(jìn)入管理界面的Admin頁簽下面,檢查是否有如下2個(gè)菜單,如有說明啟動(dòng)成功。
配置
以下操作,通過rabbitMQ的管理界面進(jìn)行操作。
創(chuàng)建exchange&queue(舊集群)
1、創(chuàng)建交換器exchange:
Name:shovel_demo_exchange Arguments:x-delayed-type:direct
2、創(chuàng)建隊(duì)列queue:
Name:shovel_demo_queue
3、綁定路由bind:
To queue:shovel_demo_queue Routing Key:shovel_demo_queue_routingKey
如上圖所示,輸入剛才創(chuàng)建的shovel_demo_exchange,按回車過濾查詢,然后點(diǎn)擊列表中的名稱鏈接,進(jìn)入下圖的詳細(xì)界面:
創(chuàng)建exchange&queue(新集群)
創(chuàng)建方法及名稱跟舊集群一模一樣,全部名稱和配置都要一樣。
舊集群中發(fā)送消息
1、進(jìn)入發(fā)送界面:
2、輸入信息發(fā)送:
3、發(fā)送完成提示:
4、重復(fù)上面的操作,再發(fā)送2條消息,總共有3條消息。
5、查看積壓的消息:
遷移數(shù)據(jù)
新集群創(chuàng)建shovel連接
1、打開新集群的管理界面,進(jìn)入Admin頁簽,點(diǎn)擊Shovel Management菜單,按以下方式增加一個(gè)shovel:
queue:shovel_demo_queue URI格式:amqp://user:password@server-name/my-vhost Source URI:amqp://zat:zat123@10.0.101.5/zat #舊集群URI,IP要改 Destination URI:amqp://zat:zat123@10.0.104.5/zat #U集群URI,IP要改
2、新增成功界面:
3、檢查狀態(tài)是否正常:
注:shovel是針對(duì)queue(隊(duì)列)來操作的,有多少個(gè)隊(duì)列要遷移數(shù)據(jù),就要?jiǎng)?chuàng)建多少個(gè)對(duì)應(yīng)的shovel。
驗(yàn)證
shovel創(chuàng)建好后,如果檢查狀態(tài)正常的話,它會(huì)自動(dòng)進(jìn)行遷移數(shù)據(jù)。現(xiàn)在我們來檢查舊集群shovel_demo_queue隊(duì)列的數(shù)據(jù)是否移到到新集群中。
1、在新集群中通過以下界面查看:
2、在舊集群中通過以下界面查看:
引用:
https://www.rabbitmq.com/shovel.html
https://www.rabbitmq.com/shovel-dynamic.html
總結(jié)
以上是生活随笔為你收集整理的RabbitMQ——使用Shovel插件迁移数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java多线程并发控制_Java多线程与
- 下一篇: java虚拟路由器_Java实现模拟路由