Spring Boot使用RabbitMq消费数据较慢解决思路-unack
Spring Boot使用RabbitMq消费数据较慢解决思路
在实际项目中我们使用消息队列Mq,一般情况下是多个生产者对应一个消费者,此时消费者这边的压力会大大增加,消费速度跟不上生产速度,就需要提高消费者的消费速度,在Spring Boot中,消费者默认是单线程消费的,此时需要根据我们实际的服务器性能进行合理的采用并发消费数据即可!设置并发线程数量,请参考线程池调优!
以下就是在Sping Boot中设置Mq的并发操作:
RabbitMq消费者工厂配置:
@Configuration
public class RabbitMqConfig {
//并发数量:根据实际的服务器性能进行配置即可
public static final int DEFAULT_CONCURRENT = 20;
@Bean("customContainerFactory")
public SimpleRabbitListenerContainerFactory containerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer,
ConnectionFactory connectionFactory) {
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
factory.setConcurrentConsumers(DEFAULT_CONCURRENT);
factory.setMaxConcurrentConsumers(DEFAULT_CONCURRENT);
configurer.configure(factory, connectionFactory);
return factory;
}
}
消费者具体使用:
@RabbitListener(queues = {"test-queue"}, containerFactory = "customContainerFactory")
以上就是在Spring Boot中设置多线程并发消费的思路以及相关配置操作!若有不足之处,请您补充!