我试图理解ActiveMQ redeliveryPlugin和消费者在将其标记为毒丸之前接收信息的不同之处。有什么不同。在文献资料中有一个例子:
<broker xmlns="http://activemq.apache.org/schema/core" schedulerSupport="true" >
....
<plugins>
<redeliveryPlugin fallbackToDeadLetter="true" sendToDlqIfMaxRetriesExceeded="true">
<redeliveryPolicyMap>
<redeliveryPolicyMap>
<redeliveryPolicyEntries>
<!-- a destination specific policy -->
<redeliveryPolicy queue="SpecialQueue" maximumRedeliveries="4"
redeliveryDelay="10000" />
</redeliveryPolicyEntries>
<!-- the fallback policy for all other destinations -->
<defaultEntry>
<redeliveryPolicy maximumRedeliveries="4" initialRedeliveryDelay="5000"
redeliveryDelay="10000" />
</defaultEntry>
</redeliveryPolicyMap>
</redeliveryPolicyMap>
</redeliveryPlugin>
</plugins>现在,我将代理的重发系统作为一个独立于客户的系统进行维护。例如,在6次尝试(默认情况下)确认一条消息(CLIENT_ACKNOWLDGMENT模式)后,消费者发送一种毒药丸。那么,在收到毒丸后,经纪人会尝试将消息发送给消费者,这将使另一个6次尝试。
因此,在消息发送到4 x 6 = 24之前,我们总共可能会尝试使用DLQ。
我说的对吗?
发布于 2015-11-20 06:39:58
是。代理不知道任何客户端重发。这发生在“司机”-在记忆中。代理不会考虑客户是否已经重新尝试。结果是嵌套重试,这是很好的注意。
https://stackoverflow.com/questions/33806160
复制相似问题