RocketMQ消费批拉超过32不生效

时间:2022-08-26 10:49:40

由于一些原因,我需要RocketMQ消费的时候,一批拉400条,一批处理400条。设置如下:

RocketMQ消费批拉超过32不生效

为了简单验证是否正确,消费如下:

RocketMQ消费批拉超过32不生效

直接通过打印msgs.size()观察情况即可。

现象

实验的topic里面的消息数量很多很多,但是启动消费端,消费端的日志如下:

RocketMQ消费批拉超过32不生效

奇怪啦,明明已经进行了修改

RocketMQ消费批拉超过32不生效

为什么还是每次只能消费32条呢?

调试RocketMQ源码

通过跟踪consumer代码:

RocketMQ消费批拉超过32不生效

这里的确已经设置为400了,那么我们需要跟踪到broker服务端进行查看了。

RocketMQ消费批拉超过32不生效

broker接受到的也是400,我们只有继续跟踪

RocketMQ消费批拉超过32不生效

因为返回为true导致下面的if判断成立,for循环就break了,所有只取了32条数据返回到consumer了:

RocketMQ消费批拉超过32不生效

RocketMQ消费批拉超过32不生效

如果需要让可以一次拉取400条,需要修改broker这里的数据配置才可(其实关于一条消息大小也是类似的,虽然说最大设置16M,但是也是和这里同理需要设置broker相关的数据配置才可生效)。

修改broker的配置文件,添加:maxTransferCountOnMessageInMemory=400 重启broker即可,效果如下:

RocketMQ消费批拉超过32不生效

效果正常,其实如果消息过大,还需要考虑下面几个参数:

RocketMQ消费批拉超过32不生效

备注:也可以不用重启broker,通过命令实时修改:

sh mqadmin updateBrokerConfig -c 集群名称 -n namesrv  -k maxTransferCountOnMessageInMemory -v 400

总结

需要RocketMQ消费的时候,一批拉400条,一批处理400条。设置如下:

RocketMQ消费批拉超过32不生效

还是达不到效果的,还需要设置broker相关的参数,本次里面设置broker的maxTransferCountOnMessageInMemory=400即可,其他情况需要考虑如下等参数。

RocketMQ消费批拉超过32不生效

本文转载自http://www.jiangxinlingdu.com/rocketmq/2018/12/05/pullbatchsize.html

RocketMQ消费批拉超过32不生效的更多相关文章

  1. 解决DATASNAP远程方法参数超过32个的问题

    群里有位同仁提出他有一个DATASNAP远程方法超过了32个参数,然后DELPHI编译通不过,提示方法参数不能超过32个,问怎么办?于是群内同仁纷纷出主意,我说用OLEVARINAT数组,有人说用RE ...

  2. rocketmq消费负载均衡--push消费为例

    本文介绍了DefaultMQPushConsumerImpl消费者,客户端负载均衡相关知识点.本文从DefaultMQPushConsumerImpl启动过程到实现负载均衡,从源代码一步一步分析,共分 ...

  3. rocketmq消费队列代码

    DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(Constant.operationLogGroup); try { consum ...

  4. RocketMq重复消费问题排查

    前情 出现了重复消费的问题,同一个消息被重复消费了多次,导致了用户端收到了多条重复的消息,最终排查发现,是因为消费者在处理消息的方法onMessage中有异常没有捕获到,导致异常上抛,被consume ...

  5. RocketMQ 自己的整理和理解

    每个人的想法不同, RocketMQ 介绍的时候就说 是阿里从他们使用的上 解耦出来 近一步简化 便捷的 目的当然是 让其能快速入手和开发 如果不是在项目设计层面上 只是使用的话 从Git上下载该项目 ...

  6. RocketMQ核心技术精讲与高并发抗压实战

    1:特点 比较吃内存 内存至少1g 默认8g 1:支持集群模型,强调集群无单点,负载均衡以及水平扩展能力2:亿级别的消息堆积能力3:采用零拷贝原理Consumer 消费消息过程,使用了零拷贝 顺序写盘 ...

  7. RocketMQ原理解析-Consumer

    consumer 1.启动 有别于其他消息中间件由broker做负载均衡并主动向consumer投递消息,RocketMq是基于拉模式拉取消息,consumer做负载均衡并通过长轮询向broker拉消 ...

  8. SpringBoot如何优雅的使用RocketMQ

    目录 SpringBoot如何优雅的使用RocketMQ SpringBoot如何优雅的使用RocketMQ MQ,是一种跨进程的通信机制,用于上下游传递消息.在传统的互联网架构中通常使用MQ来对上下 ...

  9. 源码分析Kafka 消息拉取流程

    目录 1.KafkaConsumer poll 详解 2.Fetcher 类详解 本节重点讨论 Kafka 的消息拉起流程. @(本节目录) 1.KafkaConsumer poll 详解 消息拉起主 ...

随机推荐

  1. python 之 前端初识 html

    html语法代码示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  2. Java反射机制&lt&semi;2&gt&semi;

    反射机制还可以调用类中的指定方法或指定属性,并且可以通过反射完成对数组的操作. 通过反射调用类中的方法 import java.lang.reflect.Method; //============= ...

  3. Android 常用的快捷键(随时更新)

    android studio 是google出的一款好用不贵的ide,好像是powerd by idea的那个公司,反正风格上差不多.下面是android studio常用的快捷键设置,记录一下自己用 ...

  4. poj1006---中国剩余定理

    #include<iostream> using namespace std; int main(){ ; &&e!=-&&i!=-&&d! ...

  5. 几个linux 下C&sol;C&plus;&plus;集成开发环境推荐

    链接地址:http://www.lupaworld.com/article-210675-1.html 摘要: 一.AnjutaAnjuta是一个多语言的IDE,它最大的特色是灵活,同时打开多个文件, ...

  6. ios设备触发虚拟键盘输入后position&colon;fixed 无效的一些简单另类的解决方法。

    首先看一下我要解决的问题,第一张图是正常的情况下,第二张图是点击了输入框之后的情况,就是要解决此问题~! 百度了一下解决方法,好像有以下的一些方法: 1. iscroll 2. Jquery Mobi ...

  7. Mlecms 反射型xss &amp&semi;&amp&semi; 后台任意文件下载

    应该算0day吧,自己分析出来的,有点鸡肋,不过小cms分析确实比较简单. xss地址:search.php?word=a><img+src=1+onerror=alert`1`>a ...

  8. 基于V4L2摄像头采集图片程序设计

    #ifndef __COMMON_H #define __COMMON_H //该头文件定义的是摄像头在屏幕上显示的宽度和高度 #include<stdio.h> #include< ...

  9. 如何让div中的table水平居中

    <div style="text-align:center"> <table border="1" cellpadding="3&q ...

  10. 使用canvas实现一个圆球的触壁反弹

    HTML <canvas id="canvas" width="500" height="500" style="borde ...