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

RocketMQ 消息消费流程 该文所涉及的 RocketMQ 源码版本为 4.9.3。拉取消息 成功之后 会调用 org.apache.rocketmq.client.impl.consumer.ConsumeMessageConcurrentlyService#submitConsumeRequest 组装 消费消息 请求获取 consumeMessageBatchMaxSize,表示一个 ConsumeRequest 包含的消息 数量,默认为 1入参 msgs 为拉取消息的最大值,默认为 32如果 msgs 小于等于 consume 阅读详情

rocketmq想支持批量消费,于是便设置以下参数:

consumer.setConsumeMessageBatchMaxSize(1000);

这样是正确的,但由于业务要求,还想再设置大点,于是设置成这样:

consumer.setConsumeMessageBatchMaxSize(10000);

报错了。直接不消费了。

错误原因写的很明显,这个consumeMessageBatchMaxSize只支持0到1024,超出范围就直接启动消费者失败。
下面是报错信息:

com.alibaba.rocketmq.client.exception.MQClientException: consumeMessageBatchMaxSize Out of range [1, 1024]
See https://github.com/alibaba/RocketMQ/issues/73 for further details.
        at com.alibaba.rocketmq.client.impl.consumer.DefaultMQPushConsumerImpl.checkConfig(DefaultMQPushConsumerImpl.java:910) ~[rocketmq-client-3.2.2.R3.FB-20160704.105459-1.jar:na]
        at com.alibaba.rocketmq.client.impl.consumer.DefaultMQPushConsumerImpl.start(DefaultMQPushConsumerImpl.java:695) ~[rocketmq-client-3.2.2.R3.FB-20160704.105459-1.jar:na]
        at com.alibaba.rocketmq.client.consumer.DefaultMQPushConsumer.start(DefaultMQPushConsumer.java:385) ~[rocketmq-client-3.2.2.R3.FB-20160704.105459-1.jar:na]
        at com.yeahmobi.dsp.adconsumer.helper.AbstractPullConsumer2ForBatch.afterPropertiesSet(AbstractPullConsumer2ForBatch.java:173) ~[dsp-track-consumer-0.0.1-SNAPSHOT.jar:na]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1642) [spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1579) [spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) [spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) [spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) [spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) [spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) [spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) [spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:751) [spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861) [spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) [spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]

看源码:

在这里插入图片描述
这个值默认是1,也就是rocketmq默认只能一条一条消费。

在这里插入图片描述
再看这段,直接判断范围,不在0到1024就报错了。

问题很明显,但仔细想想这是为什么呢?

为什么这个值不让超过1024,也就是rocketmq的作者,不希望每批处理的条数超过1024条。

个人猜测

1、如果一批消费太多的话,量可能会有点太大,导致传输解析变慢。
2、如果失败重试,这么多绑在一起,可能就因为某一条出错,而导致整体重试,所以这个整体也不能太大,否则也是很麻烦的。

使用RocketMQ遇到过问题?细数RocketMQ的5个问题 大家好,我是小郭,之前分享一一些关于RocketMQ的源码文章,认识到RocketMQ里面真的非常丰富,在开发的过程中消息中间件已经成为我们常用的技术方案,但是他也给我们带来了很多麻烦。今天主要和大家分享一下在实际使用中遇到遇到的问题,以及如何是如何解决的。主要介绍了RocketMQ在使用中遇到的一些问题,从中认识到使用中间件的时候,需要特别注意它所带来的一些意想不到的影响,不低估每一个功能的实现,进而避免故障的产生。 阅读详情

相关推荐

RocketMQ(22) -- RocketMQ应用 -- 批量消费消息

RocketMQ应用 -- 批量消费消息

姜皓的博客 5579

RocketMq参数配置之拉取模式消息数量的设置

设置了pullBatchSize,但是实际上拉取的消息量少于设置的值;设置了 consumeMessageBatchMaxSize,但是实际上消费的消息量少于该值的问题所在。

码尚究好 7827

RocketMQ重复消费问题排查历程

版本:4.2.0,源码:class文件 问题描述: 生产环境日志目录使用的默认配置,MQ启动用户的家目录可用空间设置的大小有限制,随着时间的推移可用空间不足,决定修改日志目录,MQ的logback_*.xml配置的默认路径${user.home}全局替换为/data,然后重启MQ,生产环境使用的双master,分别是19和20服务器,运维在重启的时候先停止的19号服务器的MQ一分二十秒之后启动MQ,五分钟之后停止20号服务器MQ,再启动20号服务器MQ。 启动使用的命令: nohup sh mqna

small_bao的博客 1929

RocketMQ第三章:手把手教老婆实现:普通消息(同步,异步和单向)的生产者和消费者

第一节:项目准备 第二节:普通消息-生产者和消息者步骤说明 第三节:普通消息-同步消息 第四节:普通消息-异步消息 第五节:普通消息-单向消息 第六节:总结

小虚竹的专栏 2万+

RocketMQ

漏消费问题:通过消费进度管理、重试机制和消息持久化,RocketMQ 能有效防止漏消费。重复消费问题:虽然 RocketMQ 保证至少一次投递,但消费者需要通过幂等性设计来避免重复消费对业务造成的影响。事务消息机制:RocketMQ 提供的事务消息机制可以帮助在分布式事务场景中,确保消息消费的准确性和一致性。通过以上机制,RocketMQ 在高可靠性消息系统中提供了强大的保障,防止消息漏消费和重复消费问题。管理 事务消息。

qq_41893505的博客 2940

pandas,构造MultiIndex的四种方法:from_tuples、from_arrays、from_product、from_frame

1、from_tuples:通过 “元组对” 构造MultiIndex """ 一对元组,为一个索引 """ tuples = [(1, 'red'), (1, 'blue'), (2, 'red'), (2, 'blue')] pd.MultiIndex.from_tuples(tuples, names=('number', 'color')) 2、from_arrays:通过 “列表元素的组合” 构造MultiIndex """ 列中表的元素,按位置 对应组合,形成索引 """ arrays

jieru_liu的博客 5387

【RocketMQ】记录一次广播模式消费遇到的问题

文章目录问题详情问题定位问题解决 问题详情 业务团队反馈使用RocketMQ时,消费失败,报如下的错误: 错误1: java.io.FileNotFoundException: C:\Users\zhangzhen16\.rocketmq_offsets\10.201.241.170@172.24.140.45:9876;172.24.130.73:9876@12188\sas_rule_event_consumer\offsets.json.tmp (文件名、目录名或卷标语法不正确。) at java

浩瀚宇宙的一粒尘埃 2552

GD32主程序跑飞?可能是BOOT0引脚惹的祸(附J-LINK调试实录)

本文针对GD32微控制器程序下载后无法运行的典型问题,深入剖析了BOOT0引脚配置对启动模式的关键影响。通过结合J-LINK调试器与KEIL MDK环境,详细演示了如何从程序跑飞现象(如PC指向0x1FFF Fxxx)定位到硬件层面的BOOT0引脚与VDD短路故障,并提供了系统的硬件排查步骤与设计预防建议。

d6e7f8的博客 704

RocketMQ重复消费问题及解决方案

摘要:本文分析了RocketMQ消息重复消费的四种主要原因:客户端重复发送、重试机制、消费者宕机重启和集群模式特性。针对这些问题,提出了三种有效解决方案:发送端实现幂等性检测(如为消息添加唯一ID)、消费端实现业务逻辑幂等(如建立消息消费记录表)以及合理设置消费进度存储策略(如文件存储)。文章包含Java代码示例,演示如何通过数据库记录确保消息处理的幂等性,帮助开发者有效避免重复消费问题,提升系统可靠性。

没事学AI的博客 1529

反激开关电源变压器设计实例讲解(定明芳)

内容来自《反激变压器的设计》(定明芳主讲)。 定名芳老师主要讲了10步,最后应该还有一步,线径的选择已经绕制方式。这里进行了记录整理,把一些公式来源进行了推导。所有的设计都是基于理论计算。 1.确定电源规格 2.确定工作频率和最大占空比 3.计算匝比(利用伏秒平衡原则) 此处插入解释一下伏秒平衡,根源是磁通量平衡。该原则可以用来检查MOS管耐压是否够。 4.计算初级线圈峰值电流 基于CCM模式计算的。ip1是开关管要关闭时的峰值电流,ip2是开关管开始导通时的起始电流。因为时CCM模式,所以,ip

ydgd118的博客 5万+

AutoSAR系列讲解 - 资料下载

学习资料下载汇总

雪云飞星的博客 4万+

RocketMQ—RocketMQ消息重复消费问题

本文介绍了RocketMQ消息重复消费的问题,说明了错误和正确的解决方案,并结合Java代码来进行演示分析。

随机的未知——用已知去面对未知 950

Python爬虫实战:爬取Bilibili和YouTube视频、弹幕和评论

随着视频内容平台的爆发式增长,视频网站成为了人们获取信息、娱乐和知识的重要渠道。在这些平台上,视频、弹幕和评论数据可以为我们提供重要的信息,帮助我们了解用户的行为、视频的受欢迎程度以及内容的互动情况。本篇文章将带你实现一个Python爬虫,用来爬取Bilibili和YouTube上的视频、弹幕、评论等数据。我们将详细介绍爬虫的实现过程,使用最新的Python技术,并且会提供完整的代码。Bilibili网站提供了多种方式来获取视频数据,最直接的方式是通过其开放的API接口来获取视频、弹幕和评论等数据。

2201_76125261的博客 1775

RocketMQ消费者注册失败

RocketMQ消费者注册失败可能由多种原因导致。这里列出一些常见的问题和解决方法,帮助你排查和解决问题。

li836779537的博客 2608

全网最全RT-DETR涨点改进,基于官方源码1:1还原,在Ultralytics项目中配置rtdetr-r18、rtdetr-r34、rtdetr-r50、rtdetr-r101版本~小论文大论文必备

本文详细介绍了如何将RT-DETR的ResNet18/34/50/101/154版本移植到ultralytics项目中。主要内容包括:1) RT-DETR核心特点,如高效混合编码器、IoU感知查询选择等;2) 提供完整ResNet核心代码;3) 分步配置指南,包括创建模块文件和修改tasks.py;4) 各版本yaml配置文件的创建方法。该方案可帮助研究者快速实现RT-DETR改进,适用于目标检测相关论文研究。所有配置文件均可正常运行,为实验部署提供了便利。

Ai缝合怪、助力小伙伴高效发论文 3932

【GEOS-Chem模拟教程第二期上】生物质燃烧排放 GFED4 数据配置

生物质燃烧排放 GFED4 数据配置

WW、forever的博客 1301

rocketmq python 某个队列不消费_记一次RocketMQ消息消费异常

记一次RocketMQ 消息已经消费然则cosumer offset没有更新的问题发现问题:开发中在项目重启时会重复消费消息,但其实消息已经消费过了。查找问题:1.RocketMq console查看,发现订阅组消息延迟2.从消息看message Detail 对应的consumerGroup trackType为 not conume yet3.项目日志也没有任何错误日志,然而根据相关业务查询数...

weixin_42515101的博客 1586

基于STM32L4XX、HAL库的 ATGM336H GPS定位模块驱动程序设计

/ 转换为km/h。// 定位状态: 0=无效, 1=GPS定位, 2=差分定位。// GPS解析数据。支持GPS/BeiDou/GLONASS/Galileo/QZSS多系统联合定位。// 回调函数(需要在HAL_UART_RxCpltCallback中调用)// 地面速度(km/h)// 海拔高度(m)

zhusl6688的博客 794

RocketMQ顺序消费模式下如何优化消息处理逻辑以减少延迟?

如果内置的监控指标不能满足需求,可以自定义监控指标。例如,可以通过RocketMQ提供的API来获取特定的性能数据,并将这些数据发送到自定义的监控系统中。通过上述方法,可以有效地监控RocketMQ消息处理的性能指标,及时发现并解决潜在的性能问题,确保消息系统的稳定和高效运行。

赵KK的博客 1422

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

RocketMQ延迟消息无法正常消费的问题

rocketmq延迟消息,rocketmq消息不消费怎么排除。

weixin_48383520的博客 2076

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

RocketMQ & Kafka 消息消费与消息重试

RocketMQ 保证消费成功 PushConsumer 为了保证消息肯定消费成功,只有使用方明确表示消费成功,RocketMQ 才会认为消息消费成功。中途断电,抛出异常等都不会认为成功——即都会重新投递。 业务实现消费回调的时候,当且仅当此回调函数返回ConsumeConcurrentlyStatus.CONSUME_SUCCESS,RocketMQ 才会认为这批消息(默认是1条)是消费完成的。 如果这时候消息消费失败,只要返回ConsumeConcurrentlyStatus.RECONSUME..

chuixue24的博客 1040

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

RocketMQ 常见故障排查手册:消息丢失、重复消费与延迟过高问题

摘要:本文针对RocketMQ三大核心问题——消息丢失、重复消费和延迟过高,提出系统性解决方案。对于消息丢失,建议分环节排查生产者确认机制、Broker持久化配置和消费者确认逻辑;处理重复消费需实现幂等性设计,推荐基于消息ID、数据库索引或状态机的解决方案;优化消息延迟需分析Broker瓶颈、消费者能力及网络环境。最后强调故障预防的重要性,包括合理配置、开发规范、监控体系和应急预案。通过"原理+工具+场景"的综合方法,可有效提升RocketMQ的可靠性。

码路同行 1220

rocketmq-client-go注册消费者组的问题

golang环境服务启动,通过代码新注册一个`customer group`进行消费,服务一直报错,无法同步offset,且无法正常消费mq的问题

铁柱的博客 2208

从消费者角度分析,RocketMQ 如何保证消息被成功消费?

Apache RocketMQ 是一款高性能、低延迟、可扩展的分布式消息中间件,广泛应用于实时数据流处理等场景。在消息中间件中,保证消息被成功消费是至关重要的,它直接关系到系统的可靠性和数据的一致性。本文将从消费者的角度出发,详细分析 RocketMQ 如何保证消息被成功消费。

My_wife_QBL的博客 1367

rocketMQ避坑记录(附docker环境下设置brokerIP1解决方案)

环境配置 1、 推荐使用64位OS,Linux/Unix/Mac 2、 64bit JDK 1.8+ 3、 Maven 3.2.x 注意:在搭建rocketMQ前,需配置好JDK1.8,若用source release版需配置maven环境 rocketMQ下载地址 source re...

chizeiqin5110的博客 5414

Rocketmq常见问题

rocketmq使用过程中,踩过的坑,以及注意事项, 以及最佳实践

fwhezfwhez的博客 2124
上一篇: [错误记录] --- clickhouse报错Decimal value is too small
下一篇: rocketmq批量消费
zhangSir134
博客等级 码龄9年 7969粉丝 246原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值