AMQ的重新运作如何运作?它是否在重新兑换过程中完全占用了消费者?

Hua*_*wei 4 activemq-classic

假设我们只有一个消费者,我们的重新发送政策将允许该消息在很长一段时间内重新传递.

我尝试了一种情况,我发送了两条消息(不同的类型),一个被设计为重新传送,另一个可以正常消费.

如果它比重新传递的消息晚发送,似乎正常消息将被阻止.在重新传递的消息多次尝试达到最大重传时间之前,它不会被消耗.这将导致易于消费的消息必须等待很长时间才能消耗的情况.

我想知道AMQ重新启动是如何工作的.当在消费者中重新传递消息时,可以将另一消息发送给该消费者,直到当前消息被消耗或超时(到DLQ).

有人可以帮忙吗?谢谢,

Jak*_*rab 8

重新传递消息时,ActiveMQ的首要考虑是遵守队列中的消息排序.

给定两条消息A和B,它们会按照您的描述发送到具有已定义的重新传递策略的队列:如果客户端处理A失败,该消息将被放回队列,并且在A成功使用之前不会消耗其他消息.

有关更多详细信息,请查看ActiveMQ消息重新传递和DLQ处理部分.


如果它回答了您的问题,请记得将此回复投票.