RabbitMQ——使用Shovel插件遷移數據


 

前言

公司的RabbitMQ集群要升級最新穩定版本,升級方案:新搭建一套集群,將數據遷移到新的集群,應用連接到新的集群。

因為系統可以接受短暫停機時間,所以采用Shovel插件將舊集群的數據遷移到新集群。經過分析,需要遷移的數據主要有兩種:

  • 隊列中積壓的消息;
  • 延遲隊列的消息;

 

安裝插件

  • 啟動插件

新集群中的每一台服務器上,執行以下命令啟動shovel插件:

rabbitmq-plugins enable rabbitmq_shovel
rabbitmq-plugins enable rabbitmq_shovel_management
  • 驗證插件

進入管理界面的Admin頁簽下面,檢查是否有如下2個菜單,如有說明啟動成功。

 

配置

以下操作,通過rabbitMQ的管理界面進行操作。

  • 創建exchange&queue(舊集群)

1、創建交換器exchange:

Name:shovel_demo_exchange
Arguments:x-delayed-type:direct

2、 創建隊列queue:

Name:shovel_demo_queue

 3、綁定路由bind:

To queue:shovel_demo_queue
Routing Key:shovel_demo_queue_routingKey

如上圖所示,輸入剛才創建的shovel_demo_exchange,按回車過濾查詢,然后點擊列表中的名稱鏈接,進入下圖的詳細界面:

  • 創建exchange&queue(新集群)

創建方法及名稱跟舊集群一模一樣,全部名稱和配置都要一樣。

  • 舊集群中發送消息

1、進入發送界面:

2、輸入信息發送:

3、發送完成提示:

4、重復上面的操作,再發送2條消息,總共有3條消息。

5、查看積壓的消息:

 

遷移數據

  • 新集群創建shovel連接

1、打開新集群的管理界面,進入Admin頁簽,點擊Shovel Management菜單,按以下方式增加一個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、檢查狀態是否正常:

注:shovel是針對queue(隊列)來操作的,有多少個隊列要遷移數據,就要創建多少個對應的shovel。

 

驗證

shovel創建好后,如果檢查狀態正常的話,它會自動進行遷移數據。現在我們來檢查舊集群shovel_demo_queue隊列的數據是否移到到新集群中。

1、在新集群中通過以下界面查看:

2、在舊集群中通過以下界面查看:

 

 

引用:

  • https://www.rabbitmq.com/shovel.html
  • https://www.rabbitmq.com/shovel-dynamic.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM