【发布时间】:2018-04-05 00:54:02
【问题描述】:
我正在收听 2 个 RabbitMQ 队列。对于 1 个队列,我需要一个消费者来确保一次只处理一条消息。 第二个队列可以在一秒钟内接收大量消息,我需要能够一次消费许多消息。
我有以下代码,它确实按我的预期工作。但是我想看看是否有更好的方法来做到这一点。
@Bean
SimpleMessageListenerContainer container(ConnectionFactory connectionFactory,
MessageListenerAdapter listenerAdapter) {
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
container.setMessageConverter(Jackson2JsonMessageConverter());
container.setQueueNames(QUEUE1);
container.setMessageListener(listenerAdapter);
container.setAdviceChain(new Advice[]{interceptor()});
return container;
}
@Bean
SimpleMessageListenerContainer container1(ConnectionFactory connectionFactory,
MessageListenerAdapter listenerAdapter) {
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
container.setMessageConverter(Jackson2JsonMessageConverter());
container.setQueueNames(QUEUE2);
container.setMessageListener(listenerAdapter);
container.setAdviceChain(new Advice[]{interceptor()});
container.setConcurrentConsumers(1);
container.setMaxConcurrentConsumers(10);
return container;
}
@Bean
MessageListenerAdapter listenerAdapter() {
return new MessageListenerAdapter(queueService, "consume");
}
【问题讨论】:
标签: rabbitmq spring-amqp