MCollective如何替换ActiveMQ队列中的死订阅服务器?

MCollective如何替换ActiveMQ队列中的死订阅服务器?,activemq,Activemq,我在通过ActiveMQ 5.8使用MCollective的直接寻址时遇到问题。() 当通过MCollective订阅节点队列的一个节点崩溃并且没有取消订阅时,就会出现问题。当主机再次引导和订阅时,现在有两个具有相同身份的订阅方,因为ActiveMQ无法识别崩溃前的订阅方不再侦听。这是直接寻址的一个问题,因为它进入队列,ActiveMQ只向一个订户发送消息,而且它似乎总是选择不侦听的订户;因此,消息永远不会传递到实际节点。如果让ActiveMQ记录消息帧,我可以观察到这种情况 这可能与Activ

我在通过ActiveMQ 5.8使用MCollective的直接寻址时遇到问题。()

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

这可能与ActiveMQ的“持久订户”(即具有相同身份的订户取消订阅任何现有订户)概念有关,但我不知道如何从McCollective配置它

我想要的是,要么新订户与旧订户碰撞,要么在向其发送消息且连接已断开时删除已断开的订户(使用Wireshark,我可以看到数据包未被确认,而ICMP数据包返回“无法到达目的地”)。

显然,根据,解决方案是使用MCollective 2.3(我用的是2.2)和跺1.1的keepalives