重新创建 spring rabbit CachingConnectionFactory 的所有连接
Recreate all connections of spring rabbit CachingConnectionFactory
我有一个具有多个地址的 CachingConnectionFactory。当一个代理出现故障时,它会与第二个连接。现在,当代理再次出现时,我需要销毁现有连接并重新连接到它。但是 CachingConnectionFactory 没有任何启动、停止方法,而只有销毁,这可能会使工厂无法使用(?)。
配置:
<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()
是安全的;下次组件需要连接时,将重置并重新建立连接。
不过请记住,这会影响任何进程中的操作。
我们可能应该添加一个不那么可怕的方法,例如 resetConnection()
,就像我们使用 Spring JMS 连接工厂一样。
我有一个具有多个地址的 CachingConnectionFactory。当一个代理出现故障时,它会与第二个连接。现在,当代理再次出现时,我需要销毁现有连接并重新连接到它。但是 CachingConnectionFactory 没有任何启动、停止方法,而只有销毁,这可能会使工厂无法使用(?)。
配置:
<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()
是安全的;下次组件需要连接时,将重置并重新建立连接。
不过请记住,这会影响任何进程中的操作。
我们可能应该添加一个不那么可怕的方法,例如 resetConnection()
,就像我们使用 Spring JMS 连接工厂一样。