RocketMQ消费批拉超过32不生效
由于一些原因,我需要RocketMQ消费的时候,一批拉400条,一批处理400条。设置如下:
为了简单验证是否正确,消费如下:
直接通过打印msgs.size()观察情况即可。
现象
实验的topic里面的消息数量很多很多,但是启动消费端,消费端的日志如下:
奇怪啦,明明已经进行了修改
为什么还是每次只能消费32条呢?
调试RocketMQ源码
通过跟踪consumer代码:
这里的确已经设置为400了,那么我们需要跟踪到broker服务端进行查看了。
broker接受到的也是400,我们只有继续跟踪
因为返回为true导致下面的if判断成立,for循环就break了,所有只取了32条数据返回到consumer了:
如果需要让可以一次拉取400条,需要修改broker这里的数据配置才可(其实关于一条消息大小也是类似的,虽然说最大设置16M,但是也是和这里同理需要设置broker相关的数据配置才可生效)。
修改broker的配置文件,添加:maxTransferCountOnMessageInMemory=400 重启broker即可,效果如下:
效果正常,其实如果消息过大,还需要考虑下面几个参数:
备注:也可以不用重启broker,通过命令实时修改:
sh mqadmin updateBrokerConfig -c 集群名称 -n namesrv -k maxTransferCountOnMessageInMemory -v 400
总结
需要RocketMQ消费的时候,一批拉400条,一批处理400条。设置如下:
还是达不到效果的,还需要设置broker相关的参数,本次里面设置broker的maxTransferCountOnMessageInMemory=400即可,其他情况需要考虑如下等参数。
本文转载自http://www.jiangxinlingdu.com/rocketmq/2018/12/05/pullbatchsize.html
RocketMQ消费批拉超过32不生效的更多相关文章
- 解决DATASNAP远程方法参数超过32个的问题
群里有位同仁提出他有一个DATASNAP远程方法超过了32个参数,然后DELPHI编译通不过,提示方法参数不能超过32个,问怎么办?于是群内同仁纷纷出主意,我说用OLEVARINAT数组,有人说用RE ...
- rocketmq消费负载均衡--push消费为例
本文介绍了DefaultMQPushConsumerImpl消费者,客户端负载均衡相关知识点.本文从DefaultMQPushConsumerImpl启动过程到实现负载均衡,从源代码一步一步分析,共分 ...
- rocketmq消费队列代码
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(Constant.operationLogGroup); try { consum ...
- RocketMQ之消费者启动与消费流程
vivo 互联网服务器团队 - Li Kui 一.简介 1.1 RocketMQ 简介 RocketMQ是由阿里巴巴开源的分布式消息中间件,支持顺序消息.定时消息.自定义过滤器.负载均衡.pull/p ...
- RocketMq重复消费问题排查
前情 出现了重复消费的问题,同一个消息被重复消费了多次,导致了用户端收到了多条重复的消息,最终排查发现,是因为消费者在处理消息的方法onMessage中有异常没有捕获到,导致异常上抛,被consume ...
- RocketMQ 自己的整理和理解
每个人的想法不同, RocketMQ 介绍的时候就说 是阿里从他们使用的上 解耦出来 近一步简化 便捷的 目的当然是 让其能快速入手和开发 如果不是在项目设计层面上 只是使用的话 从Git上下载该项目 ...
- RocketMQ核心技术精讲与高并发抗压实战
1:特点 比较吃内存 内存至少1g 默认8g 1:支持集群模型,强调集群无单点,负载均衡以及水平扩展能力2:亿级别的消息堆积能力3:采用零拷贝原理Consumer 消费消息过程,使用了零拷贝 顺序写盘 ...
- RocketMQ原理解析-Consumer
consumer 1.启动 有别于其他消息中间件由broker做负载均衡并主动向consumer投递消息,RocketMq是基于拉模式拉取消息,consumer做负载均衡并通过长轮询向broker拉消 ...
- SpringBoot如何优雅的使用RocketMQ
目录 SpringBoot如何优雅的使用RocketMQ SpringBoot如何优雅的使用RocketMQ MQ,是一种跨进程的通信机制,用于上下游传递消息.在传统的互联网架构中通常使用MQ来对上下 ...
随机推荐
- Spring XML文件配置
singleton不能创建多对象(默认) <?xml version="1.0" encoding="UTF-8"?> <beans xmln ...
- 3.9 run_main.py源码(兼容python2和3)
3.9 run_main.py源码(兼容python2和3) 以下代码在python2和python3上都跑通过,python3只需注释掉上面红色框框区域代码就行(最后一步发送邮箱代码,我注释掉了). ...
- Dart 创建List
list的常用的操作 1. [] ,length 获取元素,和数组长度 2. add(), insert ()添加元素 3. remove(),clear() 删除元素 4.indexOf (), ...
- angular6实现对象转换数组对象
1 使用表单获取到数据以后,是对象类型的数据如下图 而后台需要返回的数据是这种key:value的形式传入 2 废话不多说直接上代码(代码只截取部分,仅供参考跑不起来,最后又一个小demo可以运行 ...
- vs2015打开Dialog出现HRESULT:0x8CE0000B
关闭项目 在工程目录找到.vc.db文件删除
- js相关用法
一.location1.返回当前网址urllocation.href2.设置跳转网址urllocation.href = "http://www.baidu.com"3.重载刷新l ...
- 软件开发者路线图梗概&书摘chapter7
软件工程是一门技艺 原因:理解不足以系统化 技能:为交付可以工作的软件 重要的原因:了解不足以将它写成可供别人直接运用并得到相同成果的格式 大多数程序员低于平均水平 工艺:一套高度重视技能的训练和传统 ...
- P2930 [USACO09HOL]假期绘画Holiday Painting
线段树水题,考虑到只有15列,所以我们对于每一列,我们都去维护一个线段树. 现在来考虑一下修改操作,因为每次修改的时候,我们都是将黑的改成白的,白的改成黑的,所以我们对线段树的每个节点维护当前这段区间 ...
- Spring框架基础解析
Spring是一个轻量级的.非侵入式的容器框架:对Bean对象的生命周期进行管理. Spring框架的核心:IOC(控制反转).DI(依赖注入).AOP(面向切面编程). (1) IOC:控制反转. ...
- Python map,filter,reduce函数
# -*- coding:utf-8 -*- #定义一个自己的map函数list_list = [1,2,4,8,16] def my_map(func,iterable): my_list = [] ...