rabbitmq 多用户意味着我的服务器使用多线程?

rqqzpn5f  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(1)|浏览(229)

我正在用Java做一个简单的项目。我想知道如果我写这个代码,SimpleRabbitListenerContainerFactory.setConcurrentConsumers(2),那么我的程序使用多线程吗?

xdyibdwo

xdyibdwo1#

简单的回答是肯定的。
假设你在配置监听器的@Bean注解方法中配置它。根据Spring AMPQ文档,它看起来应该类似于:

@Configuration
@EnableRabbit
public class AppConfig {

    @Bean
    public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory() {
        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
        factory.setConnectionFactory(connectionFactory());
        factory.setConcurrentConsumers(3);
        factory.setMaxConcurrentConsumers(10);
        return factory;
    }
}

正如您所看到的,还设置了并发消费者的最大数量,这意味着您将使用min=3max=10消费者之间的某个消费者。
如果你只设置.setConcurrentConsumers(3),这意味着你使用的是固定数。不能多,不能少。
建议阅读:
监听程序并发
注解驱动的异步配置

相关问题