【发布时间】:2014-05-08 14:06:16
【问题描述】:
我正在将 ActiveMQ 代理与 Mule 一起使用。有多个应用程序对某种类型的消息感兴趣,每个应用程序都有自己的专用队列。我想确保保证将消息传递给消费者。有休息服务(GET)充当 消费者服务并将消息传递给调用者。
在我的例子中,保证交付意味着消费者可以从队列中提取消息并在最后成功处理它。为了实现这一点,我希望消费者发回确认,在收到确认后,我应该从队列中删除消息。这有意义还是有更好的方法?如何实现?
【问题讨论】:
我正在将 ActiveMQ 代理与 Mule 一起使用。有多个应用程序对某种类型的消息感兴趣,每个应用程序都有自己的专用队列。我想确保保证将消息传递给消费者。有休息服务(GET)充当 消费者服务并将消息传递给调用者。
在我的例子中,保证交付意味着消费者可以从队列中提取消息并在最后成功处理它。为了实现这一点,我希望消费者发回确认,在收到确认后,我应该从队列中删除消息。这有意义还是有更好的方法?如何实现?
【问题讨论】:
通过 ActiveMQ 的任何事务功能实现有保证的交付。您应该使用任何支持保证交付的协议来使用来自代理的消息。 Here is a list of protocols/documentation.
显而易见的选择是 OpenWire (NMS API / JMS API),但您也可以使用 STOMP 或 AMQP 来保证交付。避免为此而休息。
【讨论】: