spring boot 自学笔记(七) Rabbitmq并发消费
来源:互联网 发布:众思科技 知乎 编辑:程序博客网 时间:2024/06/07 03:49
默认情况下,Rabbitmq消费者为单线程串行消费,这也是队列的特性,当然在有些业务中需要并发消费,本文主要示例spring中和boot中指定消费者数量来并发消费。spring amqp文档也有相关描述:文档地址
通过设置Messagelistener 的containerconcurrency属性来设置消费者数量
XML示例:
<rabbit:listener-container connection-factory="connectionFactory" acknowledge="manual" concurrency= "5"> <rabbit:listener ref="myMessageListener" queue-names="hello"/></rabbit:listener-container>
Boot中消费者配置可以参考前面文章,但是在@RabbitListener中,concurrency并不是配置在注解中,而且通过配置containerFactory来设置:
定义containerFactory bean:
@Bean("pointTaskContainerFactory")public SimpleRabbitListenerContainerFactory pointTaskContainerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer, ConnectionFactory connectionFactory) {SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();factory.setPrefetchCount(PointTaskConstant.DEFAULT_PREFETCH_COUNT);factory.setConcurrentConsumers(PointTaskConstant.DEFAULT_CONCURRENT);configurer.configure(factory, connectionFactory);return factory;}
/** * 消费者数量,默认10 */public static final int DEFAULT_CONCURRENT = 10;/** * 每个消费者获取最大投递数量 默认50 */public static final int DEFAULT_PREFETCH_COUNT = 50;
@RabbitListener(queues = MQConstant.POINT_TASK_QUEUE_NAME,containerFactory = "pointTaskContainerFactory")
MQConstant.POINT_TASK_QUEUE_NAME 为队列名称,常量,自定义
在多消费同时消费情况下,必须要考虑到多线程安全问题。
阅读全文
0 0
- spring boot 自学笔记(七) Rabbitmq并发消费
- spring boot 自学笔记(五) Rabbitmq集成,延时消息队列实现
- Spring RabbitMQ 异步消费
- spring boot 自学笔记(一) hello word
- spring boot 自学笔记(二) 集成Mybatis
- Spring Boot学习笔记(七) Docker
- spring-boot 集成 rabbitmq
- Spring boot集成RabbitMQ
- spring boot集成rabbitmq
- spring boot+RabbitMQ
- SPRING BOOT+ELASTICSEARCH+RABBITMQ
- Spring Boot RabbitMQ 集成
- Spring Boot RabbitMQ Exchange
- spring-boot 集成 rabbitmq
- Spring Boot 集成RabbitMQ
- Spring Boot 集成RabbitMQ
- rabbitMQ配置spring boot
- spring-boot 集成 rabbitmq
- unity执行顺序以及unity协程的使用
- ElasticSearch 索引查询使用指南——详细版
- Java调用Webservice
- 导入数字时的正则验证,正整数和0.000
- centos下面升级MariaDB mysql
- spring boot 自学笔记(七) Rabbitmq并发消费
- centos6.5下使用yum完美搭建LNMP环境(php5.6)
- 倒计时-----刷新页面不重置
- Android Glide使用
- 【机器学习】高斯混合聚类python实现
- bzoj380Gty的二逼妹子序列
- Python函数定义练习:解一元二次方程
- 洪荒之力已无,追求之心尚在
- Xcode格式化代码快捷键