我有一个项目与Spring-AMQP。它工作正常。我使用CachingConnectionFactory和SimpleMessageListenerContainer,并且我有一个CompositeConnectionListener来检测连接何时关闭。
但是现在我需要检测代理何时关闭(我可以用CompositeConnectionListener检测到它),然后在不同的服务器上建立到不同代理的新连接,并使用新连接重新启动SimpleMessageListenerContainer。
我已经试了一段时间了,但我还没找到路。
有人能帮上忙吗?
谢谢!
发布于 2015-04-24 20:37:29
您可以通过提供多个地址让RabbitMQ客户端负责故障转移:
addresses="host1:5672,host2:5672"如果您想创建自己的连接,您将需要一个委托连接工厂。你也许可以用一个SimpleRoutingConnectionFactory来实现它。参见the documentation about routing connection factories。
发布于 2015-04-30 19:14:32
谢谢你,加里。
现在我有一个SimpleRoutingConnectionFactory和两个CachingConnectionFactory (两个不同的代理)。我用CompositeConnectionListener检测连接何时关闭,然后我可以切换到第二个CachingConnectionFactory (手动,我以为它会自动完成)。它工作正常。
但是,如果我尝试从第一个代理开始,我会得到:
org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connect我不知道如何抓住它,然后换成第二个经纪人。如果我阻止这两个经纪人,同样的事情也会发生。
再次感谢您!
https://stackoverflow.com/questions/29846371
复制相似问题