是否可以为各个队列设置死信队列

Is it possible to have dead letter queue for individual queues

我目前在我的 ActiveMQ 服务器中有一个名为 hello.world 的队列。每当消息处理失败时,ActiveMQ 都会创建一个名为 ActiveMQ.DLQ 的默认目录。是否可以将该名称更改为 hello.world.DLQ 之类的名称?原因是我将来可能有几个队列,我希望它像 <queue_name>.DLQ

您要找的东西叫 Individual Dead letter Queue strategy, 在此过程中,ActiveMQ 为每个 queue/topic、

创建特定的 DLQ

您可以通过稍微调整 activemq.xml

来实现它,如下所示
 <destinationPolicy>
    <policyMap>
      <policyEntries>
       <policyEntry queue=">">  <!-- '>' is the wildcard used in ActiveMQ which means for all queues, i.e. same as '*' in any other language -->
        <!-- need to add the following lines in you conf file -->
          <deadLetterStrategy>
            <individualDeadLetterStrategy
              queuePrefix="DLQ." useQueueForQueueMessages="true" />
          </deadLetterStrategy>
        </policyEntry>
      </policyEntries>
    </policyMap>
  </destinationPolicy>

此配置将创建名称类似于 DLQ.<queue_name> 的 DLQ,如果您不需要前缀,可以删除 queuePrefix 属性。

希望对您有所帮助!

祝你好运!