我可以在运行时更新 AMQP 设置吗?

Can I update AMQP settings in runtime?

我有具体要求:需要可以在运行时更改连接设置和侦听队列的应用程序。

我想使用 Spring AMQP 抽象:应用程序将在运行时更新的 CachingConnectionFactory、DirectMessageListenerContainer、RabbitTemplate、AsyncRabbitTemplate。

CachingConnectionFactory - 更新地址、用户名和密码。 DirectMessageListenerContainer - 更新 QueueNames。 最后一个 - 不会更新,但受 ConnectionFactory 影响。

这是正确的方法吗?或者我应该对消费者使用基础实现?

  • 停止所有使用代理(侦听器容器、生产者)的activity
  • cachingConnectionFactory.resetConnection()
  • 重新配置连接工厂
  • 添加和删除队列to/from容器
  • 启动容器和生产者