gpt4 book ai didi

rabbitmq - 多个 SimpleMessageListenerContainer 容器

转载 作者:行者123 更新时间:2023-12-02 01:02:31 27 4
gpt4 key购买 nike

我有 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");
}

最佳答案

你所做的完全正确。如果不同的队列需要不同的消费者,就必须配置不同的ListenerContainer s。您也可以考虑使用 Spring Integration AMQP channel 适配器:https://docs.spring.io/spring-integration/docs/5.0.3.RELEASE/reference/html/amqp.html

关于rabbitmq - 多个 SimpleMessageListenerContainer 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49662566/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com