ActiveMQ禁用死信队列
在使用持久化的ActiveMQ中,过期之后消息会被转发到ActiveMQ.DLQ队列中。
目前发现在线上的大量商品信息同步时,由于消费端的机制导致了过期消息的产生,转发到DLQ队列后对消息服务器的空闲资源造成影响。
由于消息的发送和消费都对应有应用日志,DLQ在存放消息的意义不大,所以禁用DLQ队列。
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic=">" producerFlowControl="false" memoryLimit="1024mb" prioritizedMessages="true">
<pendingMessageLimitStrategy>
<constantPendingMessageLimitStrategy limit="1000"/>
</pendingMessageLimitStrategy>
</policyEntry>
<policyEntry queue=">" producerFlowControl="false" memoryLimit="1024mb" prioritizedMessages="true">
<deadLetterStrategy>
<sharedDeadLetterStrategy processExpired="false" />
</deadLetterStrategy>
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
主要配置:
<sharedDeadLetterStrategy processExpired=”false” />