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” />