簡體   English   中英

在RabbitMQ的多個節點上定義隊列

[英]Define queue on multiple node on RabbitMQ

我們正在使用兩個RabbitMQ節點的集群,並且正在使用RabbitMQ Java驅動程序與這些節點進行交互。 我們正在使用“標頭”交換器,該交換器根據標頭綁定和持久隊列將消息傳輸到隊列。

事實是,隊列是為一個節點定義的。 如果此節點由於某種原因而崩潰,則應到達該節點隊列的消息將丟失。

當檢測到持有它們的另一個節點不可達時,有沒有辦法告訴RabbitMQ更改隊列宿主節點,因此,請確保將消息傳輸到隊列? 並在節點再次出現時恢復消息?

目前,我們正在使用高可用隊列來解決此問題,但性能卻很差。 我們不需要它提供的鏡像功能,因為只在節點再次出現時才恢復消息是很好的選擇

您需要通過將delivery_mode設置為2來使消息持久化 ,並聲明隊列持久性。 這樣,當重新啟動節點並保存消息時,隊列又回來了。 第二教程中有更多內容。 實際上,我在本教程中沒有看到如何在Java中進行操作,但是在phyton中存在該功能 ,因此您需要在javadoc中查找,可能也是'publish'方法中的一個參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM