重新创建spring rabbit CachingConnectionFactory的所有连接

时间:2015-08-06 07:25:11

标签: java spring rabbitmq spring-amqp spring-rabbit

我有一个带有多个地址的CachingConnectionFactory。当一个经纪人关闭时,它与第二个连接。现在,当经纪人再次出现时,我需要销毁现有连接并重新连接到它。但CachingConnectionFactory没有任何start,stop方法,而只有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>

有没有办法以编程方式执行此操作?

1 个答案:

答案 0 :(得分:3)

致电destroy()是安全的;连接将在组件下次需要时重置并重新建立。

但请记住,这会影响任何进程中的操作。

我们应该添加一个不那么可怕的方法,比如我们在Spring JMS连接工厂中使用的resetConnection()