【问题标题】:ActiveMQ Artemis - max-delivery-attempts more than 7ActiveMQ Artemis - max-delivery-attempts 超过 7
【发布时间】:2021-07-15 08:36:16
【问题描述】:

我正在使用 ActiveMQ Artemis 2.17.0,我正在尝试将 max-delivery-attempts 设置为 10,但对于大于 7 的值,它无法正常工作。

这是我来自broker.xmladdress-settings

      <address-settings>
         <!-- if you define auto-create on certain queues, management has to be auto-create -->
         <address-setting match="activemq.management#">
            <dead-letter-address>DLQ</dead-letter-address>
            <expiry-address>ExpiryQueue</expiry-address>
            <redelivery-delay>0</redelivery-delay>
            <!-- with -1 only the global-max-size is in use for limiting -->
            <max-size-bytes>-1</max-size-bytes>
            <message-counter-history-day-limit>10</message-counter-history-day-limit>
            <address-full-policy>PAGE</address-full-policy>
            <auto-create-queues>true</auto-create-queues>
            <auto-create-addresses>true</auto-create-addresses>
            <auto-create-jms-queues>true</auto-create-jms-queues>
            <auto-create-jms-topics>true</auto-create-jms-topics>
         </address-setting>
         <!--default for catch all-->
         <address-setting match="#">
            <dead-letter-address>DLQ</dead-letter-address>
            <expiry-address>ExpiryQueue</expiry-address>
            <redelivery-delay>0</redelivery-delay>
            <!-- with -1 only the global-max-size is in use for limiting -->
            <max-size-bytes>-1</max-size-bytes>
            <message-counter-history-day-limit>10</message-counter-history-day-limit>
            <address-full-policy>PAGE</address-full-policy>
            <auto-create-queues>true</auto-create-queues>
            <auto-create-addresses>true</auto-create-addresses>
            <auto-create-jms-queues>true</auto-create-jms-queues>
            <auto-create-jms-topics>true</auto-create-jms-topics>
            <max-delivery-attempts>10</max-delivery-attempts>
         </address-setting>
      </address-settings>

我以提供的测试软件为例。该软件使用 OpenWire 协议,我注意到 ActiveMQ 属性被忽略了。我还注意到我可以直接在软件中设置最大交付尝试次数。现在可以正常使用了,为什么我不能从服务器控制呢?

有什么想法吗?

【问题讨论】:

  • 我以提供的测试软件为例。该软件使用 OpenWire 协议,我注意到 ActiveMQ 属性被忽略。我还注意到我可以直接在软件中设置最大传递尝试次数,现在可以正常使用,但问题是为什么我无法从服务器控制它。

标签: activemq-artemis


【解决方案1】:

OpenWire 协议(由 ActiveMQ“Classic”5.x 客户端使用)通过“重新传递策略”在 客户端 端实现重新传递。您可以在the documentation 中阅读更多相关信息。您会注意到默认的maximumRedeliveries6

由于这种客户端实现,无法正确执行代理端控制。简而言之,经纪人甚至不知道客户端发生了任何重新交付。

您可以在客户端上执行重新交付配置(即通过重新交付策略)或切换到 ActiveMQ Artemis JMS 客户端实现,这将需要一个新的 jar 并且可能需要重新配置的连接 URL。

【讨论】:

    猜你喜欢
    • 2021-10-30
    • 2013-05-24
    • 1970-01-01
    • 2019-09-21
    • 2022-08-10
    • 1970-01-01
    • 2020-10-09
    • 2021-10-09
    • 2021-09-02
    相关资源
    最近更新 更多