当前位置:首页 > 服务端 > 工作随笔——rabbitmq的多线程监听(Springboot)

工作随笔——rabbitmq的多线程监听(Springboot)

2022年08月06日 18:00:38服务端6

一、需求

使用rabbitmq转发大量消息,提高效率。由于springboot中rabbitmq默认是单线程监听,所以需要我们加以配置。

二、方案

配置rabbitmq多线程监听,提供SimpleRabbitListenerContainerFactory类的bean,为数据量大的队列指定这个bean。
设置多线程批量处理。在任意配置类中,提供这个bean。(注意配置类中的Listener会覆盖配置文件中的配置)

    // 配置批量监听容器
    @Bean("batchQueueRabbitListenerContainerFactory")
    public SimpleRabbitListenerContainerFactory batchQueueRabbitListenerContainerFactory(ConnectionFactory connectionFactory) {
     
        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
        factory.setConnectionFactory(connectionFactory);
        //设置批量
        factory.setBatchListener(true);
        factory.setConsumerBatchEnabled(true);//设置BatchMessageListener生效
        factory.setBatchSize(1000);//设置监听器一次批量处理的消息数量
        factory.setConcurrentConsumers(10);  //设置线程数
        factory.setMaxConcurrentConsumers(10); //最大线程数
        return factory;
    }

为队列指定这个bean

    // 创建消费者,比较两者时间
    @RabbitListener(queues = "xiaomi",containerFactory = "batchQueueRabbitListenerContainerFactory")
    public void xiaomiHandler(List<Message> messages) throws IOException, ClassNotFoundException {
     
        log.info("xiaomiHandler>>>>>" + messages.size());
    }

三、测试

工作随笔——rabbitmq的多线程监听(Springboot) _ JavaClub全栈架构师技术笔记
确实是10个线程并发监听。

作者:⚠小白出没⚠
来源链接:https://blog.csdn.net/qq_43585377/article/details/109204501

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/18381.html

标签: RabbitMQ
分享给朋友:

“工作随笔——rabbitmq的多线程监听(Springboot)” 的相关文章

中间件RabbitMQ

中间件RabbitMQ

一、前言 RabbitMQ在Windows上安装非常简单,就跟日常安装应用聊天软件一样,因此这里选择Linux环境安装RabbitMQ,并且借助Docker容器进行安装,在使用Docker安装RabbitMQ之前,我们先简单的了解一下几个概念:什么...

rabbitmq权限配置

关于rabbitmq权限的几点: rabbitmq的权限控制通过两层来实现,一是vhost的权限,二是确认有权限访问vhost后,对vhost内资源的权限控制(配置,读,写)   1.默认...

rabbitmq 启动异常

问题点说明:今天早上,开发人员反映Rabbitmq有问题,我试着登录页面访问http://IP:15672,出现了报错信息,因为当时忙着处理,报错页面没有截下来。 后面想重启一下Rabbitmq看能不能解决问题,发现居然重启不了,然后查看了下日志信息,找到了Ra...

linux查看rabbitmq运行状态,RabbitMQ常用命令

RabbitMQ常用命令 rabbitmqctl命令 http://www.rabbitmq.com/man/rabbitmqctl.1.man.html# 1). 服务器启动与关闭 启动: rabbitmq-server –detach...

RabbitMQ工作方式

RabbitMQ工作方式: 工作队列模式 发布订阅模式 路由模式 通配符模式 header转发模式 RPC远程过程调用模式   作者:wondream322 来源链接:https://blog.csdn.net/wang386476890/art...

Window 下载安装 RabbitMQ

Window 下载安装 RabbitMQ

安装必看:erlang与rabbitmq版本对应关系表   "版本一定要匹配" 下载与安装 erlang 由于RabbitMQ是基于erlang的,所以,在正式安装RabbitMQ之前,需要先安装一下erlang。 下载链接:http://e...

activeMQ、rabbitMQ学习对比心得

activeMQ、rabbitMQ学习对比心得

一、activemq activemq工作模型比较简单。只有两种模式 queue、topics 。 queue就多对一,producer往queue里发送消息,消费者从queue里取,消费一条,就从queue里移除一条。如果一个消费者消费速度...

CentOS7 RabbitMQ 安装

CentOS7 RabbitMQ 安装

1.包的选择 安装RabbitMQ之前需要安装Erlang,这里注意安装的版本的对应关系,详见官网 版本对应,大致为  在这里我选择的是: erlang-23.3.4-1.el7.x86_64.rpm rabbitmq-serv...

RabbitMQ消息确认机制(ACK)

RabbitMQ消息确认机制(ACK)

1、消息确认机制(ACK) 为了保证消息从队列可靠的达到消费者,RabbitMQ 提供了消息确认机制(Message Acknowledgement)。消费者在订阅队列时,可以指定 autoAck 参数,当 autoAck 参数等于 false 时,RabbitMQ 会等待...

RabbitMQ原理

RabbitMQ原理

RabbitMQ原理 Simplest Sample Work Queues Round-robin dispatching Messa...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。