ActiveMQ 超时消息配置不进DLQ

在项目中尝试过两种解决方式:

  • 修改activemq/config/activemq.xml配置文件
<destinationPolicy>
            <policyMap>
              <policyEntries>
                <policyEntry topic=">" producerFlowControl="true">

                  <pendingMessageLimitStrategy>
                    <constantPendingMessageLimitStrategy limit="1000"/>
                  pendingMessageLimitStrategy>
                policyEntry>
                <policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb">

                   
                policyEntry>
              policyEntries>
            policyMap>
        destinationPolicy>
  • 修改生产者代码
        this.jmsTemplate.setTimeToLive(timeToLive);
        //为true的时候才会使用TTL配置
        this.jmsTemplate.setExplicitQosEnabled(true);
        this.jmsTemplate.convertAndSend(queue, obj);
        //这段代码配置超时消息不缓存到DLQ
        this.jmsTemplate.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

你可能感兴趣的:(ActiveMQ 超时消息配置不进DLQ)