我正在使用spring boot(基於註釋)處理RabbitMQ。我試圖添加多個偵聽器到一個容器,但只有一個偵聽器工作。Spring Boot多個RabbitMQ監聽器到單容器
我能夠初始化兩個容器併爲每個容器分配單獨的消息監聽器。無論是添加多個偵聽器的唯一方式,其中每個容器都有各自的偵聽器? 我正在使用ChannelAwareMessageListener接口,以便我可以單獨處理消息並確認它們。我不想使用RabbitListener,因爲我無法確認消息。
@Bean
@Qualifier("receiverContainer")
SimpleMessageListenerContainer receiverContainer(ConnectionFactory connectionFactory,@Qualifier("receiverAdapter") MessageListenerAdapter
listenerAdapter) {
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
container.setQueueNames(queueName);
container.setMessageListener(listenerAdapter);
container.setAcknowledgeMode(AcknowledgeMode.MANUAL);
container.setAutoStartup(false);
return container;
}
在Spring XML中,我可以添加兩個監聽到一個容器
<rabbit:listener-container
connection-factory="connectionFactory" acknowledge="auto" concurrency="10"
requeue-rejected="true">
<rabbit:listener ref="myMessageListener" queues="spring.queue" />
<rabbit:listener ref="messageQueueManager" queues="user.login.notification" />
</rabbit:listener-container>
那麼,如何添加兩個監聽到一個容器在春季啓動基於註解?或者我應該使用一個容器 - 一個聽衆的方式?
這不是'@ RabbitListener'的工作方式,你可以檢查文檔嗎? –
每個' 'XML元素實際上代表一個單獨的容器 - 請參閱我的答案以獲得完整的描述。 –