我有一个Spring-AMQP项目。它正常工作。我使用CachingConnectionFactory
和SimpleMessageListenerContainer
,我有CompositeConnectionListener
来检测连接何时关闭。
但现在我需要检测代理何时关闭(我可以使用CompositeConnectionListener
检测它)然后在另一台服务器上建立与另一个代理的新连接,然后重新启动SimpleMessageListenerContainer
与新的联系。
我已经尝试了一段时间,但我还没有看到。
有人可以帮忙吗?
谢谢!
答案 0 :(得分:1)
您可以通过提供多个地址让RabbitMQ客户端负责故障转移:
addresses="host1:5672,host2:5672"
如果您想自己动手,则需要委派连接工厂。您可以使用SimpleRoutingConnectionFactory
来实现它。请参阅the documentation about routing connection factories。
答案 1 :(得分:0)
谢谢你。
现在我有一个signedCms.ComputeSignature(cmsSigner, false);
和两个SimpleRoutingConnectionFactory
(两个不同的经纪人)。我用CachingConnectionFactory
检测连接何时关闭,然后我可以更改为第二个CompositeConnectionListener
(手动,我认为它将自动完成)。它工作正常。
但如果我尝试从第一个经纪人开始,我得到:
CachingConnectionFactory
我不知道如何抓住它并改为第二个经纪人。如果我停止这两个经纪人,也会发生同样的事情。
再次感谢你!