如何在没有静态配置的情况下向 TopicExchange 声明和订阅多个队列?

How can I declare and subscribe many Queues to an TopicExchange without static config?

我有一个 Spring-Boot 应用程序,其中包含许多用于处理事件类型的 AMQP 消息的@Service 组件。这些消息由另一个组件发布到由路由键分隔的单个 ExchangeTopic。

我应该如何在应用程序启动后创建队列并将其订阅到 TopicExchange 并避免维护大量配置?

您可以根据需要简单地调用 RabbitAdmin.declareQueue()declareBinding()

对于每个新队列,您可以创建一个新的 SimpleMessageListenerContainer 或将队列添加到现有容器中。

向容器添加队列会取消现有的消费者并立即创建新的消费者,因此会有(短暂的)中断。