[英]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.