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批量消费相关推荐

  1. [错误记录] --- rocketmq批量消费设置参数的问题

    rocketmq想支持批量消费,于是便设置以下参数: consumer.setConsumeMessageBatchMaxSize(1000); 这样是正确的,但由于业务要求,还想再设置大点,于是设置 ...

  2. RocketMQ消息消费方式 推拉模式

    RocketMQ消息消费本质上是基于的拉(pull)模式,consumer主动向消息服务器broker拉取消息. consumer被分为2类:MQPullConsumer和MQPushConsumer ...

  3. Kafka 批量消费

    业务背景 项目有个需求需要统计IM聊天相关数据,原设计思想是在聊天产生时通过消息队列进行数据记录,利用rocketMQ实现.上线后发现由于内部IM活跃用户量级较大,MQ生产者生产消息过多,消费者实时消 ...

  4. python kafka offset自动提交_Spring-Kafka —— 实现批量消费和手动提交offset

    spring-kafka的官方文档介绍,可以知道自1.1版本之后, @KafkaListener开始支持批量消费,只需要设置batchListener参数为true 把application.yml中 ...

  5. Apache Kafka-消费端_批量消费消息的核心参数及功能实现

    文章目录 概述 参数设置 Code POM依赖 配置文件 生产者 消费者 单元测试 测试结果 源码地址 概述 kafka提供了一些参数可以用于设置在消费端,用于提高消费的速度. 参数设置 https: ...

  6. rdkafka线程过多_Kafka/RocketMQ 多线程消费时如何保证消费顺序?

    上两篇文章都在讨论顺序消息的一些知识,看到有个读者的留言如下: 这个问题问得非常棒,由于在之前的文章中并没有提及到,因此我在这篇文章中单独讲解,本文将从消费顺序性这个问题出发,深度剖析 Kafka/R ...

  7. Kafka 批量消费消息

    改成批量消费消息有两个需要注意的地方: 1.配置文件修改 # 批量消费每次最多消费条目数 max-poll-records: 20 listener:# 关闭监听topic不存在的话项目启动报错mis ...

  8. [RocketMQ]消息中间件—RocketMQ消息消费(一)

    2019独角兽企业重金招聘Python工程师标准>>> 文章摘要:在发送消息给RocketMQ后,消费者需要消费.消息的消费比发送要复杂一些,那么RocketMQ是如何来做的呢? 在 ...

  9. RocketMQ——顺序消费(代码)

    关于rocketmq顺序消费的理解和图示可以查看该博文:RocketMQ--顺序消费和重复消费 本博客主要是以代码示例来了解顺序消费的相关内容,建议在此之前先了解下顺序消费的原理. 注:RocketM ...

最新文章

  1. CSS3伪类和伪元素的特性和区别
  2. python画方波_今天学会傅里叶画画,明天就是初音未来 - 如何用Python和Blender画任意图形...
  3. hibernate主键生成策略 问题
  4. php5 mongodb,ThinkPHP5之Mongodb使用技巧
  5. mysql获取用户权限api_AnalyticDB MySQL服务关联角色
  6. 基于物理的渲染详尽指南 卷1光与介质:基于物理的渲染和着色理论
  7. 卡巴斯基安全部队2013中文免费版【可免费使用一个月】
  8. php解密抖音小程序用户手机号/字节跳动小程序thinkphp
  9. 无锡江苏高性能服务器服务商,无锡高防云服务器
  10. mybatis学习1
  11. 网络营销之QQ推广技巧
  12. 计算机图像处理2000字论文,图像处理计算机技术论文
  13. 博弈论大作战之 PART1
  14. ZOJ - 3713 In 7-bit 进制转换
  15. 你愿意给应届生200万年薪吗?
  16. 1、大道至简的数据处理工具-(Microsoft Power Query入门)
  17. c++头文件iomanip.h中的setw、setprecision、setfill和setbase函数的使用
  18. trickle ICE文档翻译 [draft-rescorla-mmusic-ice-trickle-01.txt]
  19. python字典统计男女比例_python统计男女比例-女性时尚流行美容健康娱乐mv-ida网...
  20. 朗朗pk机器人_弹琴机器人PK郎朗爱徒,艺术能被机器代替吗?

热门文章

  1. Java面试知识点:Object类、Math类、BigDecimal类、自动装箱、拆箱
  2. 对知识图谱的告白:斯坦福大学CS520课程介绍
  3. ASP.NET Core Web API 索引 (更新Identity Server 4 视频教程)
  4. jmeter练习(5)关联升级版—ForEach控制器(提取多个响应结果并依次传参)
  5. 移植memtester到android平台
  6. 软件或jar包等名字里的GA意思
  7. Leetcode--200. 岛屿数量
  8. 牛客网--2019校招--瞌睡
  9. java实现数组排序代码_Java使用选择排序法对数组排序实现代码
  10. python安装百度aip_Python3.6安装aip