我正在编写一个spring boot应用程序,它使用来自RabbitMQ的消息并对其进行处理。由于发布者正在高速发布消息,我希望我的消费者也能高速处理它们。
我的消费者代码不是线程安全的。
下面是一种可能的方式,我想实现:
如何使用以下代码实现此目的?
@Bean
SimpleMessageListenerContainer container(ConnectionFactory connectionFactory,
MessageListenerAdapter listenerAdapter) {
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
container.setQueueNames("MY_MESSAGE_QUEUE");
container.setConcurrency("10");
container.setMessageListener(listenerAdapter);
<<How can I set multiple MessageListener here?????>>
}
提前致谢。
答案 0 :(得分:1)
每个容器只能有一个侦听器实例。
如果您的侦听器不是线程安全的,那么每个实例都需要一个单独的容器bean,concurrentConsumers=1
(默认值)。