我有两个配置为存储转发网络的ActiveMQ代理(A和B)。当消费者在代理B上连接并且生产者向A发送消息时,他们完美地将消息从A转发到B.问题是,当消费者被终止并重新连接到A时,B上的排队消息(它们从A)不会转回到消费者连接到的A.即使我向B发送新消息,所有消息仍然停留在B,直到我重新启动代理。我试图在代理网络连接器上设置networkTTL =“4”和duplex =“true”,但它不起作用。ActiveMQ中间人网络不转发邮件
3
A
回答
3
迟到的答案,但希望这将有助于未来的其他人。
由于默认情况下AMQ不允许将消息发送回先前传送给它的代理,所以消息在B中卡住。在正常情况下,这可以防止消息在没有交付的情况下围绕网状网络拓扑进行周期性转换,但是在故障转移情况下,会导致消息停留在一个代理上,并且无法到达所有消费者所在的代理。
要允许消息返回到代理,如果当前代理因为没有消费者连接到它而死锁,则应该使用replayWhenNoConsumers = true允许转发B上卡住的消息返回A.
该配置选项,你可能想结合使用与它的一些设置,使用时的一些注意事项,在“卡住消息(5.6版)”中描述的http://activemq.apache.org/networks-of-brokers.html,http://tmielke.blogspot.de/2012/03/i-have-messages-on-queue-but-they-dont.html,并https://issues.apache.org/jira/browse/AMQ-4465部分。确保您可以忍受这些更改的副作用(例如,可能会在代理与代理网络连接中重复传输其他消息)。
1
您能否提供更多关于代理A和代理B配置的信息,以及您试图实现的目标?
在我看来,通过设置经纪人网络(使用A和B),您可以实现您想要的目标,只有生产者连接到一个,消费者可以连接到另一个。 只要另一个代理具有对邮件发送到的目标的有效订阅,邮件就会自动传输到其他代理。
如果您不确定产生的后果(它往往会导致不需要的消息循环),我不建议更改networkTTL。
相关问题
- 1. ActiveMQ网络经纪人
- 2. ActiveMQ C#+经纪人网络
- 3. ActiveMQ JMS网络轮询间隔
- 4. 在经纪人的activemq网络中禁用jmx(spring,xbean)
- 5. ActiveMQ消息在经纪人网络中的传播
- 6. activemq master不放弃网络故障
- 7. 使用ActiveMQ经纪人网络减少分布式主题的网络跳数
- 8. ActiveMQ关于未在代理网络中转发的连接建议主题?
- 9. 为人人社交网络开发
- 10. 无法让ActiveMQ重新发送邮件
- 11. ActiveMQ中间商网络增加了延迟
- 12. activeMQ生产者花费很长时间发送邮件
- 13. ActiveMQ骆驼邮件
- 14. ActiveMQ经纪人网络与持久订阅主题
- 15. 经纪人网络 - ActiveMQ - 任何其他选择?
- 16. 当邮件服务器不在网络主机上时发送邮件
- 17. 邮件不通过网络发送(Python - 套接字)
- 18. 转发CNN的网络
- 19. 如何从网络邮件
- 20. PHP无法发送邮件到网络邮箱
- 21. 邮件转发邮件中的设置
- 22. PHP邮件与发件人
- 23. 保护垃圾邮件机器人/网络爬虫的电子邮件地址
- 24. HTTP网络套接字与ActiveMQ网络套接字
- 25. 电报机器人不收到转发邮件
- 26. 使用Blat在本地网络中发送邮件问题
- 27. 从顶级网络邮件服务导入联系人
- 28. Smalltalk中的邮件转发
- 29. 如果发件人邮件无效,Php邮件不起作用
- 30. 发送邮件中的“收件人”