2010-10-12 35 views
1

我想知道處理通信錯誤(rabbitmq崩潰或網絡問題)的最佳方式是什麼,例如使用java API。使用rabbitmq客戶端Java API保證交付

我們使用Channel.basicPublish(...)方法,並且我們希望爲發送給經紀人的每條消息提供保證金交付服務 。

更具體地講,是有在java客戶端mecanism發佈 API(發送到總線的消息之前),從而確保了該 消息將交付(或回調調用的時候,總線發送 IOException),還是我們必須實現這個過程?

你會怎麼做?


從西門MacMullen RabbitMQ的名單上的反應: 「 目前可以保證一個發佈已經通過是一個事務內發佈的唯一辦法 - 當事務提交完成的消息是上磁盤(假設持久的隊列/持久性消息),這是一個小的重量級不過,在未來我們打算引入流媒體出版商的ACK做同樣的工作,更異步的方式。

乾杯,西蒙 「

+0

嗨,什麼API版本使用?謝謝 – 2010-10-12 09:30:29

+0

對不起,1.8.0 – 2010-10-12 11:04:02

+0

「交易方式」適合你嗎? – walla 2010-10-13 11:12:54

回答

-1

在RabbitMQ中e是一個方法channel.basicAck(),它會讓你確認消息。

+0

您的解決方案是針對不同的問題;他想知道如何確保他的basicPublish調用成功,而不是如何告訴rabbitMQ他處理了一條消息,因此可以安全地從消息隊列中刪除它。 – 2015-04-27 21:14:53