的ConnectionURLActiveMQ的故障转移运输 - 生产者/消费者在不同的主机工作
failover:(tcp://broker1:61616,tcp://broker2:61616)?andomize=false&jms.useAsyncSend=false&jms.dispatchAsync=false&maxReconnectAttempts=30&maxReconnectDelay=3000&jms.prefetchPolicy.queuePrefetch=1000
场景:
生产者把消息
create connection
put message
close connection
监听器(AUTO_ACK)的queue_1 - 有很长的因为这是一个听众
retrieves the message
puts it in queue_2 (client_ack)
broker_1下降 - 运行定期
create connection
retrieves everything from queue_2
processes messages
ack messages
close connection
问题3210
主题。 FailoverTransport将流量重定向到broker_2。所有三个部分(Procuder,Listener和Thread)都与broker_2一起工作。 broker_1已退回。 Procuder和Thread连接到broker_1。监听器保留在broker_2上。令人惊讶的是 - 当消息在broker_1上发送给队列_1时,onMessage被调用,但是监听器将消息放置在broker_2上的queue_2上。
如何让监听者重新连接到broker_1,一旦其再次可用?还是应该让生产者和线程与broker_2一起工作?