2010-10-12 20 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