我有一个用于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操作,以协调连接的主机,但我想使实现尽可能简单。
答案 0 :(得分:0)
将消费者方面的主题用法转换为Virtual Topics。虚拟主题使您可以继续从主题中产生和使用现有的消息流,还可以使使用者在专门命名的队列上进行侦听。
一旦您从队列中使用,就可以实现所有使用方模式-排他使用方(允许该热备份备份使用方),消息组,并行使用方等。