并行侦听兔子mq中的消息

时间:2016-08-30 16:07:51

标签: rabbitmq spring-amqp

我们有一个要求,我们在应用程序启动时通过直接交换在rabbitMq中创建队列,然后必须为每个队列分配一个侦听器。我们使用Spring AMQP实现了以下配置

 @Bean(name= {"dispatcherListener"})
 public SimpleMessageListenerContainer dispatcherListener() {
    SimpleMessageListenerContainer listenerContainer = new SimpleMessageListenerContainer();
    listenerContainer.setConnectionFactory(connectionFactory());
    listenerContainer.setQueues(participantQueues());
    listenerContainer.setMessageConverter(jsonMessageConverter());
    listenerContainer.setMessageListener(subscriptionListener);
    listenerContainer.setAcknowledgeMode(AcknowledgeMode.AUTO);
    listenerContainer.setAutoStartup(false);
    return listenerContainer;
}

但是我们遇到了上述配置的问题。当我们将消息发布到多个队列时,监听器正在从每个队列中串行读取消息。但我们希望它能并行地独立于其他队列来监听来自每个队列的消息。

有人可以指导我,我哪里出错了吗? 任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

这是正确的行为,因为默认concurrency1,因此我们只有一个侦听器用于所有队列。

请考虑为您的配置增加该值。

Reference Manual中的更多信息。