【问题标题】:ActiveMQ | JMS Properties lost when configuring bridges活动MQ |配置网桥时 JMS 属性丢失
【发布时间】:2019-10-19 07:32:27
【问题描述】:

在我的 activemq 配置中,我希望为每个队列配置一个过期时间或生存时间,这样我可以保证我的 ActiveMQ 代理中不会出现内存问题。

我配置了三种不同的发布类型:

  • 直接发布到队列;
  • 发布到配置为 VirtualTopic 的主题,将消息重定向到队列;
  • 发布到重定向到队列的 VirtualTopic。然后将此队列配置为 JMS 网桥的入站队列,然后将重定向到出站队列。

我知道生存时间是在发布者端配置的,并且我在前两种情况下得到了它。虽然,在第三种情况下,我似乎失去了这个 JMS 属性并且我没有配置过期(在网桥的出站/最终队列上)。

我使用 Hawtio 查看最终队列中存在哪些属性,并确认 JMSExpiration 属性为 0,在途中丢​​失。基本上属性的路径和状态如下:

  1. 虚拟主题:配置过期
  2. 网桥的入站队列:配置过期
  3. 网桥的出站队列:没有配置过期

网桥的配置如下:

<jmsBridgeConnectors>
<jmsQueueConnector outboundQueueConnectionFactory="#localBroker" localQueueConnectionFactory="#localBroker">
    <outboundQueueBridges>

        <outboundQueueBridge
                localQueueName = "CONSUMER.EXAMPLE.INBOUND.QUEUE"
                outboundQueueName = "CONSUMER.EXAMPLE.OUTBOUND.QUEUE"/>

    </outboundQueueBridges>
</jmsQueueConnector>

您知道在网桥重定向之间丢失 JMS 属性是否正常?如果是这样,我如何配置过期或时间以在出站队列中存活?

谢谢

【问题讨论】:

    标签: jms activemq message-queue messagebroker jms-topic


    【解决方案1】:

    我设法使用现有插件解决了我自己的问题,该插件基本上为每个没有过期日期的队列设置过期日期。

    配置如下:

    <plugins>
         <timeStampingBrokerPlugin zeroExpirationOverride="172800000"/>
    </plugins>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-09
      • 2018-12-18
      • 2016-08-19
      • 1970-01-01
      • 2011-11-15
      • 2023-03-13
      • 2011-08-16
      • 2019-11-03
      相关资源
      最近更新 更多