动态MQ |配置网桥时丢失了 JMS 属性



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

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

  • 直接发布到队列;
  • 发布到配置为虚拟主题的主题,将消息重定向到队列;
  • 发布到重定向
  • 到队列的虚拟主题。然后,此队列被配置为 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 属性是否正常吗?如果是这样,如何配置出站队列的过期时间或生存时间?

谢谢

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

配置如下所示:

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

最新更新