gpt4 book ai didi

ActiveMQ 代理重新交付与消费者重新交付

转载 作者:行者123 更新时间:2023-12-02 21:31:48 24 4
gpt4 key购买 nike

我试图理解 ActiveMQ redeliveryPlugin 和消费者在将消息标记为毒丸之前尝试接收消息之间的区别。有什么不同。在 the documentation有一个例子:

<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 模式)后,消费者会发送毒丸。那么,在收到毒丸后,broker 是否会尝试重新发送消息给消费者,从而又进行了 6 次尝试。

因此,在消息发送到 DLQ 之前,我们总共可能需要 4 x 6 = 24 次尝试。

我的理解正确吗?

最佳答案

是的。经纪人不知道有任何客户重新交付。这发生在“司机”——内存中。经纪人不会考虑客户是否已经重试。结果是嵌套重试,这一点值得注意。

关于ActiveMQ 代理重新交付与消费者重新交付,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33806160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com