访问ActiveMQ的死信队列中的消息,并在消费后重新交付给webservice或socket



我在Java中使用ActiveMQ编写一个应用程序,其中我使用生产者和异步消费者机制,其中生产者发送的消息不会因网络故障而被消耗。因此,这些消息被发送到ActiveMQ的死信队列。

我的问题是如何访问死信队列中的消息,并通过在消费者中消费它并发送到webservice或套接字等来执行重试。任何代码示例都很棒。

DLQ就像任何主题或队列一样,您可以像订阅任何主题或队列一样订阅它并使用累积的消息。下面是列表http://activemq.apache.org/advisory-message.html

要订阅它的DLQ的名称是ActiveMQ.DLQ,如果您没有individualDeadLetterStrategy,则订阅并在onMessage方法上执行业务。http://activemq.apache.org/message-redelivery-and-dlq-handling.html

关于建立一个使用DLQ条目的MDB的可能性,Hassen是完全正确的。

然而,设置重发策略的正确位置是在队列或主题本身上(参见http://activemq.apache.org/redelivery-policy.html),而不是使用死信队列。实际上,您只有一个MOM的DLQ实例,它将包含来自所有不同队列/主题的消息,并且在那里设置故障转移机制将意味着管理不同的消息结构

最新更新