RabbitMQ配置

在使用RabbitMQ时,消费者默认是单线程消费的,效率很低。
可以在配置文件中添加配置达到多线程消费的效果,可以指定每个线程每次拉取的消息数量

spring:
  rabbitmq:
    listener:
      simple:
        # 手动ack配置
        acknowledge-mode: manual
        # corePoolSize核心线程数,表示一个消费者同时有多少个线程在消费
        concurrency: 10
        # 每次拉取的消息个数
        prefetch: 5

上述配置方式会对所有消费者生效,如果要针对某个消费者单独指定,可以通过配置类的方式指定

package com.mashibing.smmgateway.config;

import org.springframework.amqp.core.AcknowledgeMode;
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RabbitMQConfig {

	@Bean
	public SimpleRabbitListenerContainerFactory gatewayContainerFactory(ConnectionFactory connectionFactory,
	                                                                    SimpleRabbitListenerContainerFactoryConfigurer configurer) {
		SimpleRabbitListenerContainerFactory simpleRabbitListenerContainerFactory = new SimpleRabbitListenerContainerFactory();
		simpleRabbitListenerContainerFactory.setConcurrentConsumers(5);
		simpleRabbitListenerContainerFactory.setPrefetchCount(10);
		simpleRabbitListenerContainerFactory.setAcknowledgeMode(AcknowledgeMode.MANUAL);
		configurer.configure(simpleRabbitListenerContainerFactory, connectionFactory);
		return simpleRabbitListenerContainerFactory;
	}

}
posted @ 2025-06-13 16:24  扶她少女卡尔玛  阅读(50)  评论(0)    收藏  举报