经纪人的ActiveMQ网络don';t转发消息

经纪人的ActiveMQ网络don';t转发消息,activemq,failover,Activemq,Failover,我有两个ActiveMQ代理(A和B),它们被配置为存储转发网络。当有一个消费者连接到代理B上并且生产者向A发送消息时,它们可以完美地将消息从A转发到B。问题是,当消费者被终止并重新连接到A时,B上排队的消息(它们从A转发)不会转发回消费者连接到的A。即使我向B发送新消息,在我重新启动代理之前,所有消息都被卡在B上。我已尝试在代理网络连接器上设置networkTTL=“4”和duplex=“true”,但它不起作用。能否提供有关代理A和B配置的更多信息,以及您试图实现的目标 在我看来,你可以通过

我有两个ActiveMQ代理(A和B),它们被配置为存储转发网络。当有一个消费者连接到代理B上并且生产者向A发送消息时,它们可以完美地将消息从A转发到B。问题是,当消费者被终止并重新连接到A时,B上排队的消息(它们从A转发)不会转发回消费者连接到的A。即使我向B发送新消息,在我重新启动代理之前,所有消息都被卡在B上。我已尝试在代理网络连接器上设置networkTTL=“4”和duplex=“true”,但它不起作用。

能否提供有关代理A和B配置的更多信息,以及您试图实现的目标

在我看来,你可以通过设置一个经纪人网络(a和B)来实现你想要的,生产者只连接一个,消费者连接另一个。 只要另一个代理对消息发送到的目标具有活动订阅,消息就会自动传输到另一个代理


如果您不确定网络TTL所产生的后果(它往往会导致不必要的消息循环),我不建议您更改网络TTL。

请稍后回答,但希望这将在将来帮助其他人

消息被卡在B中,因为默认情况下,AMQ不允许将消息发送回它们以前被传递到的代理。在正常情况下,这会防止消息在网状网络拓扑中循环而无法传递,但在故障转移情况下,它会导致消息卡在一个代理上,无法到达所有使用者所在的代理

如果当前代理因没有消费者连接而处于死胡同,则要允许消息返回到代理,应使用ReplayHennoConsumers=true允许将卡在B上的消息转发回a

该配置选项、您可能希望与之结合使用的一些设置以及使用时的一些注意事项,在和的“卡住的消息(版本5.6)”部分中进行了说明。请确保您能够承受这些更改的副作用(例如,通过您的代理到代理网络连接可能会重复传递其他消息)