我有一个应用程序,它在运行时创建/停止/恢复队列和消费者。这个应用程序有多个实例。我面临的问题是实例只知道它自己创建的消费者。因此,如果有两个队列,每个队列都有一个由不同的应用实例创建的消费者,那么RabbitListenerEndpointRegistry.getQueueNames
只返回该实例正在侦听的一个队列
行为例子:
- create queueA from app instance1 从app instance2创建queueB
- 从instance1获取当前正在侦听的所有队列-只给出queueA
我需要:从任何应用实例中获取所有侦听器,并从任何应用实例中删除任何队列侦听器。
我和一个连接工厂玩了很多次,运气不好。
这可能吗?
没有可用的AMQP协议或Spring库;RabbitMQ确实提供了一个REST API和一个Java客户端绑定(Hop),这可能会有所帮助,但你需要以某种方式与每个实例通信以关闭侦听器。