首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MCollective如何从ActiveMQ队列中替换失效的订阅者?

MCollective如何从ActiveMQ队列中替换失效的订阅者?
EN

Stack Overflow用户
提问于 2013-12-04 05:44:06
回答 1查看 174关注 0票数 0

我在通过ActiveMQ 5.8使用MCollective直接寻址时遇到问题。(http://docs.puppetlabs.com/mcollective/deploy/middleware/activemq.html)

当通过MCollective订阅到节点队列的一个节点崩溃而没有取消订阅时,就会出现问题。当主机启动并再次订阅时,现在有两个具有相同身份的订阅者,因为ActiveMQ无法识别崩溃前的订阅者不再侦听。这是直接寻址的问题,因为它进入队列,ActiveMQ只将消息发送给一个订阅者,并且它似乎总是选择没有侦听的订阅者;因此消息永远不会传递到实际节点。如果我让ActiveMQ记录消息帧,我可以观察到这种情况。

这可能与“持久订阅者”(具有相同身份的订阅者取消订阅任何现有的订阅者)的ActiveMQ概念有关,但我不知道这是如何在MCollective中配置的。

我想要的是要么新的订阅者跳过旧的订阅者,要么当一条消息被发送到旧的订阅者并且连接断开时,失效的订阅者被删除(使用Wireshark,我可以看到数据包不是ACKed,而是ICMP数据包返回"Destination unreachable")。

EN

回答 1

Stack Overflow用户

发布于 2013-12-06 05:35:28

显然,根据http://projects.puppetlabs.com/issues/23365的说法,解决方案是使用Stomp2.3(我使用的是2.2)和Stomp1.1 keepalives。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20362334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档