2017-04-11 65 views
0

我正在使用Spring AMQP將消息發佈到RabbitMQ。考慮這樣一個場景:
1. Java客戶端發送消息到MQ全光照amqpTemplate.convertAndSend()
2.但是RabbitMQ的已關閉或有一些N/W問題將消息發佈到RabbitMQ時,如果發生n/w問題,消息是否丟失?

在這種情況下,消息會丟失? OR 有沒有什麼辦法可以堅持下來,並會重試?

我也檢查了發佈 - 確認模型,但據我所知,最終我們必須通過編碼來處理nack消息。

+1

我們需要處理這些。重試邏輯應該在我們的代碼中。您可以使用發佈商確認來檢查消息是否成功發佈。如果沒有,則從代碼重試。 –

+0

您可以使用'RetryTemplate',避免添加重試邏輯。 –

回答

1

RabbitTemplate支持添加一個RetryTemplate,它可以配置任何你想要的重試語義。它會處理經紀人宕機的情況。

請參閱Adding Retry Capabilities

您可以使用交易或發佈商確認以確保兔子保護消息。