rocketmq批量消费
rocketmq默认就是可以批量消费的,但需要设置多个参数一起配合。
我们只需要知道他是怎么消费的,就可以很精准的设置他的批量消费参数。
我们看看DefaultMQPushConsumer源码中的这几个参数:
/*** 消费消息线程,最小数目*/private int consumeThreadMin = 20;/*** 消费消息线程,最大数目*/private int consumeThreadMax = 64;/*** 拉消息间隔,如果为了降低拉取速度,可以设置大于0的值*/private long pullInterval = 0;/*** 消费一批消息,最大数*/private int consumeMessageBatchMaxSize = 1;/*** 拉消息,一次拉多少条*/private int pullBatchSize = 32;
rocketmq的批量消费,简单来说就是开了一个线程池,启动多个线程去拉数据,再回调Listener去处理。
consumeThreadMin和consumeThreadMax是这个线程池的最大最小线程数,通过设置这个可以控制每次处理的线程数。
pullInterval可以理解为可调度线程池的时间参数,单位是毫秒。设置这个是为了降低消费的次数,从而达到每批消费的个数都比较多。如果本来量就很大,就没必要设置这个值了。
consumeMessageBatchMaxSize是一个最大消费限制参数,取值范围是[0,1024],也就是说,rocketmq线程池中的每一个线程,一次只能拿出1024条数据。所以如果想设置批量消费,这个值也要调大。
pullBatchSize是设置一次拉多少条,很好理解。
总结
所以说,让rocketmq批量消费,至少需要这几个值协同处理。
举个例子(pull模式并发消费):
consumer.setPullInterval(10000);
consumer.setConsumeThreadMin(5);
consumer.setConsumeThreadMax(10);
consumer.setConsumeMessageBatchMaxSize(1001);
consumer.setPullBatchSize(1000);
这个就是降低线程数,从而提升每次拉起的数据。
在没有这样配置之前,每次处理就是一条,配置了这个,每次处理就变成几十条或几百条。
rocketmq批量消费相关推荐
- [错误记录] --- rocketmq批量消费设置参数的问题
rocketmq想支持批量消费,于是便设置以下参数: consumer.setConsumeMessageBatchMaxSize(1000); 这样是正确的,但由于业务要求,还想再设置大点,于是设置 ...
- RocketMQ消息消费方式 推拉模式
RocketMQ消息消费本质上是基于的拉(pull)模式,consumer主动向消息服务器broker拉取消息. consumer被分为2类:MQPullConsumer和MQPushConsumer ...
- Kafka 批量消费
业务背景 项目有个需求需要统计IM聊天相关数据,原设计思想是在聊天产生时通过消息队列进行数据记录,利用rocketMQ实现.上线后发现由于内部IM活跃用户量级较大,MQ生产者生产消息过多,消费者实时消 ...
- python kafka offset自动提交_Spring-Kafka —— 实现批量消费和手动提交offset
spring-kafka的官方文档介绍,可以知道自1.1版本之后, @KafkaListener开始支持批量消费,只需要设置batchListener参数为true 把application.yml中 ...
- Apache Kafka-消费端_批量消费消息的核心参数及功能实现
文章目录 概述 参数设置 Code POM依赖 配置文件 生产者 消费者 单元测试 测试结果 源码地址 概述 kafka提供了一些参数可以用于设置在消费端,用于提高消费的速度. 参数设置 https: ...
- rdkafka线程过多_Kafka/RocketMQ 多线程消费时如何保证消费顺序?
上两篇文章都在讨论顺序消息的一些知识,看到有个读者的留言如下: 这个问题问得非常棒,由于在之前的文章中并没有提及到,因此我在这篇文章中单独讲解,本文将从消费顺序性这个问题出发,深度剖析 Kafka/R ...
- Kafka 批量消费消息
改成批量消费消息有两个需要注意的地方: 1.配置文件修改 # 批量消费每次最多消费条目数 max-poll-records: 20 listener:# 关闭监听topic不存在的话项目启动报错mis ...
- [RocketMQ]消息中间件—RocketMQ消息消费(一)
2019独角兽企业重金招聘Python工程师标准>>> 文章摘要:在发送消息给RocketMQ后,消费者需要消费.消息的消费比发送要复杂一些,那么RocketMQ是如何来做的呢? 在 ...
- RocketMQ——顺序消费(代码)
关于rocketmq顺序消费的理解和图示可以查看该博文:RocketMQ--顺序消费和重复消费 本博客主要是以代码示例来了解顺序消费的相关内容,建议在此之前先了解下顺序消费的原理. 注:RocketM ...
最新文章
- CSS3伪类和伪元素的特性和区别
- python画方波_今天学会傅里叶画画,明天就是初音未来 - 如何用Python和Blender画任意图形...
- hibernate主键生成策略 问题
- php5 mongodb,ThinkPHP5之Mongodb使用技巧
- mysql获取用户权限api_AnalyticDB MySQL服务关联角色
- 基于物理的渲染详尽指南 卷1光与介质:基于物理的渲染和着色理论
- 卡巴斯基安全部队2013中文免费版【可免费使用一个月】
- php解密抖音小程序用户手机号/字节跳动小程序thinkphp
- 无锡江苏高性能服务器服务商,无锡高防云服务器
- mybatis学习1
- 网络营销之QQ推广技巧
- 计算机图像处理2000字论文,图像处理计算机技术论文
- 博弈论大作战之 PART1
- ZOJ - 3713 In 7-bit 进制转换
- 你愿意给应届生200万年薪吗?
- 1、大道至简的数据处理工具-(Microsoft Power Query入门)
- c++头文件iomanip.h中的setw、setprecision、setfill和setbase函数的使用
- trickle ICE文档翻译 [draft-rescorla-mmusic-ice-trickle-01.txt]
- python字典统计男女比例_python统计男女比例-女性时尚流行美容健康娱乐mv-ida网...
- 朗朗pk机器人_弹琴机器人PK郎朗爱徒,艺术能被机器代替吗?
热门文章
- Java面试知识点:Object类、Math类、BigDecimal类、自动装箱、拆箱
- 对知识图谱的告白:斯坦福大学CS520课程介绍
- ASP.NET Core Web API 索引 (更新Identity Server 4 视频教程)
- jmeter练习(5)关联升级版—ForEach控制器(提取多个响应结果并依次传参)
- 移植memtester到android平台
- 软件或jar包等名字里的GA意思
- Leetcode--200. 岛屿数量
- 牛客网--2019校招--瞌睡
- java实现数组排序代码_Java使用选择排序法对数组排序实现代码
- python安装百度aip_Python3.6安装aip