java - 重新创建springrabbitCachingConnectionFactory的所有连接

标签 java spring rabbitmq spring-amqp spring-rabbit

我有一个具有多个地址的 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/

相关文章:

docker - 如何在远程计算机上运行rabbitmqctl命令?

java - 如何使用 Java/JavaFX MVC 跨多个 Controller 持久保存用户模型的单个实例?

java - 谁能告诉我为什么下面的代码会生成空指针异常?

java - 是否可以在注释处理环境中获取包中的所有 TypeElement?

spring - Tomcat JDBC 数据源查找在 Spring 应用程序中失败

java - Spring 任务:scheduler XML configuration problem

python - RabbitMQ - 使用多个队列

python - Celery 和 RabbitMQ 是什么关系?

java - 在 Java 中,类型后跟尖括号(如 List<Foo>)是什么意思?

java - spring mvc HTTP 状态 404 -