使用AMQ 5.5。我想禁用向ActiveMQ.DLQ目标发送死信的选项,并完全丢弃(自动)将在那里发送的消息。为此,我将经纪人配置如下:
<amq:destinationPolicy>
<amq:policyMap>
<amq:policyEntries>
<amq:policyEntry topic=">" producerFlowControl="false" >
<amq:deadLetterStrategy>
<amq:sharedDeadLetterStrategy processExpired="false" />
</amq:deadLetterStrategy>
</amq:policyEntry>
<amq:policyEntry queue=">" producerFlowControl="false">
<amq:deadLetterStrategy>
<amq:sharedDeadLetterStrategy processExpired="false" />
</amq:deadLetterStrategy>
</amq:policyEntry>
</amq:policyEntries>
</amq:policyMap>
</amq:destinationPolicy>
但是,我仍然看到消息存储在DLQ中。能告诉我可能导致这种情况的原因吗? 我是否需要修改配置中的任何内容?
由于
哈
答案 0 :(得分:2)
这里面临的问题是,上面给出的配置只会丢弃非持久的过期消息。要丢弃所有过期和非持久的过期消息,请使用discardingDLQBrokerPlugin。
<amq:plugins>
<amq:discardingDLQBrokerPlugin dropAll="true"/>
</amq:plugins>