我有一个具有多个地址的 CachingConnectionFactory。当一个经纪人出现故障时,它会与第二个经纪人连接。现在,当代理再次出现时,我需要销毁现有连接并重新连接到它。但是 CachingConnectionFactory 没有任何启动、停止方法,只有 destroy,这可能会导致工厂无法使用(?)。
配置:
<bean id="testConnFactory" class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
<property name="addresses" value="rabbit1,rabbit2" />
<property name="cacheMode" value="CONNECTION" />
<property name="connectionCacheSize" value="${connection.cache.size}" />
</bean>
有什么方法可以通过编程来做到这一点吗?
最佳答案
调用destroy()
是安全的;连接将在组件下次需要时重置并重新建立。
但请记住,这会影响任何进程内操作。
我们或许应该添加一个不那么可怕的方法,例如像 Spring JMS 连接工厂那样的 resetConnection()
。
关于java - 重新创建springrabbitCachingConnectionFactory的所有连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31849341/