如果我發佈消息給交易所,並且消息的使用者無法處理它,我可以以設定的時間間隔重試消息。問題是消息被髮送給所有消費者,而不僅僅是發生故障的消費者。RabbitMQ重新發送消息到失敗的消費者只
你如何只重發消息失敗的消費者?
如果我發佈消息給交易所,並且消息的使用者無法處理它,我可以以設定的時間間隔重試消息。問題是消息被髮送給所有消費者,而不僅僅是發生故障的消費者。RabbitMQ重新發送消息到失敗的消費者只
你如何只重發消息失敗的消費者?
如果消費者失敗,那麼消息將留在隊列中,您不必再次發送它。當消費者啓動並運行時,您將收到最後一條未能處理的消息。這樣我們可以一次又一次解決發送消息的問題。並且您不必發送Nack
該消息,並且該消息將在消費者失敗時位於隊列中。您可以在做Ack
之前通過收到消息並停止消費者來嘗試。您將能夠在隊列中再次看到該消息。
假設你有和交流必將更加隊列
exchange ---> queue1 ---> consumer 1
|---> queue2 ---> consumer 2
|---> queue3 ---> consumer 3
如果一個消費者的失敗,你不需要重新發送郵件,郵件存儲到隊列中。這是排隊的範圍
當你說發送郵件給Exchange時,它是什麼類型的交換?你是否有每個消費者的一個隊列和消息發佈給他們?你能詳細詢問一下嗎? –
交換是一個話題交換。每個消費者都有自己的隊列。 – ibanore