Rabbitmq

RabbitMQ 可以通過公共/訂閱方法保留消息嗎?

  • May 10, 2021

只是對我們的消息匯流排進行了一些研究,我沒有從Google搜尋中得到關於 RabbitMQ 是否可以通過公共/訂閱方法提供持久性的直接答案。

例如。訂閱者 A 和 B 都訂閱了發布者 C,如果發布者 C 在訂閱者 B 宕機時發布消息,訂閱者 B 恢復時會收到消息嗎?

簡短的回答是肯定的:RabbitMQ 支持消息的持久性。為此,消息必須是持久的(在客戶端中設置),並且它路由到的隊列必須是持久的。在這裡查看更多。

在您的問題中,您混淆了兩個概念,“訂閱者關閉”和“消息持久性”。如果 A 和 B 都只監聽一個發布了一條消息的隊列,它將被 A 消費。A 將發送一個 ack 並且該消息將從隊列中刪除 = 當 B 回來時 B 無法處理經紀人。如果您希望 A 和 B 都使用消息,您可以通過多種方式執行此操作,例如通過使用扇出交換,然後在綁定到交換的隊列上設置單個活動使用者,其中 A 和 B 都得到一個隊列.

引用自:https://serverfault.com/questions/1063146