簡體   English   中英

RabbitMQ請求響應消息確認

[英]RabbitMQ Request Response with message acknowldgments

我正在使用帶有Java和Spring Framework的RabbitMQ,我有一個生產者和一個消費者,這兩個實例都會運行多個實例,但是每個請求都會生成一個消息,消費者應該處理這個消息,消費者應該能夠回答同一個生產者(與持有請求完全相同)和答案。

所以要求是:

  • 生產者將收到HTTP請求,然后它將生成一條消息並將其推送到隊列。
  • 消息內容一次只能由一個消費者處理,其他消費者不應該處理相同的消息。
  • 該消息應該等待被確認。
  • 任何消費者都可以處理消息,但是當消費者失敗時,消息應該返回隊列,因為我們需要能夠從中恢復。
  • 完成后,消費者應該回復與現在持有請求完全相同的生產者。
  • 如果生產者失敗,那么該請求也應該失敗,因此消費者應該在回復之前檢查生產者是否還活着,如果它不可用那么它應該失敗。

所以:

請求 - >生產者1 - >隊列 - > consumer1

- > Producer1等待

- > consumer1失敗

- >消息回隊列

- > consumer2獲取消息並繼續1離開

- > consumer2完成並確認請求消息並發送響應

- > consumer2發現producer1失敗,因此需要發送失敗信號

目前,我所能想到的只有:1。 直接回復模式 :但這里的問題是消息沒有ack要求,但我需要能夠從消費者失敗中恢復2. RPC模型 :它沒有解決生產者失敗的問題

有沒有其他解決方案? 我做錯了嗎?

似乎要實現這個過程我們必須使用直接方式,但我仍然不確定。 一旦到達解決方案,我會通知您。

暫無
暫無

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

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