您可以拥有ActiveMQ的备用持久订阅者吗?

时间:2018-08-15 14:52:23

标签: jms activemq amq

我有一个用于JMS消息传递的主/从AMQ代理设置。我想使用Apache Camel将两台服务器设置为主/从持久消费者。我们已经通过让两个服务器尝试使用相同的客户端ID进行连接来实现这一目标。一个节点处理所有工作,但是如果一个节点发生故障,则另一节点连接并立即备份工作。对于一次只有一个使用者,这一直很好,但是在断开连接的服务器的日志文件中出现消息

时会产生噪音
 ERROR org.apache.camel.component.jms.DefaultJmsMessageListenerContainer] 
(Camel (spring-context) thread #0 - JmsConsumer[global.topic.event]) Could 
not refresh JMS Connection for destination 'global.topic.event' - retrying 
using FixedBackOff{interval=5000, currentAttempts=12, 
maxAttempts=unlimited}. Cause: Broker: broker - Client: client already 
connected from tcp://xxx.xx.xx.xxx:xxxx

是否有适当的方法来获取我想要实现的功能?我当时正在考虑让从属服务器对主机进行ping操作,以协调连接的主机,但我想使实现尽可能简单。

1 个答案:

答案 0 :(得分:0)

将消费者方面的主题用法转换为Virtual Topics。虚拟主题使您可以继续从主题中产生和使用现有的消息流,还可以使使用者在专门命名的队列上进行侦听。

一旦您从队列中使用,就可以实现所有使用方模式-排他使用方(允许该热备份备份使用方),消息组,并行使用方等。