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

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、如果失败重试,这么多绑在一起,可能就因为某一条出错,而导致整体重试,所以这个整体也不能太大,否则也是很麻烦的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rocketmq批量消费

rocketmq默认就是可以批量消费的,但需要设置多个参数一起配合。 我们只需要知道他是怎么消费的,就可以很精准的设置他的批量消费参数。 我们看看DefaultMQPushConsumer源码中的这几个参数: /*** 消费消息线程,最小数目*/private …

阿波罗配置中心(apollo)的个人看法

阿波罗应该是近几年比较火的一个分布式配置中心了,说说我个人的理解,希望对一些人有用吧。 首先从使用者的角度想 我们怎么用配置中心的? 1.得有个页面,能有权限管理,能有创建配置key-value。 在阿波罗中&#xff…

架构师成长之路

一个架构师要掌握的最基本的数学知识 知识点备注log三角函数二项式定理多项式合并极限幂函数泰勒级数傅里叶级数概率

消息队列(4):Kafka

介绍 kafka是一个支持分布式的消息系统,基于发布/订阅模式。 kafka由LinkedIn公司开发,2010年成为Apache顶级项目。 源码是由java写的。 基本概念 1、Broker kafka集群中的每台机器,都叫一个broker. 2、Topic(主题&#xff0…

clickhouse的ReplacingMergeTree引擎实战

学习ReplacingMergeTree引擎,首先你得了解clickhouse的MergeTree引擎,因为ReplacingMergeTree引擎是MergeTree引擎的一个扩展版引擎,他拥有和MergeTree一样的功能,同时新增了一个删除相同主键数据的功能。 我们知道,cl…

clickhouse 分片

我们知道mysql数据库如果想做分片,需要使用第三方组件,这是因为mysql在设计之初就没有太多考虑分布式等问题。而clickhouse作为新生代性能之王,分片也是必须的功能。基本上从2015年之后的各种数据库也罢,框架也罢,都开…

[记录] ---阿里云java.io.IOException: Connection reset by peer的问题

项目部署到阿里云,突然报错,频繁的打印堆栈信息,一开始是把堆内存打满导致服务一直重启,调大堆内存后就不影响正常服务了,但还是一直打堆栈,虽说日志会自动清理,但一直打这个信息着实不好看。 最…

数据库缓存双写一致性的一些个人想法

数据库缓存双写一致性的一些个人想法 有这么个问题,还是经典面试题: 说我们有个数据库,他的读请求特别多,以至于要在数据库上加一层缓存来抗压,这个都能理解吧。 这里的缓存,可能是和数据库一样的数据&am…

2020年规划

1.去其他城市,市级城市超过3个。 2.继续想着通过其他方式赚钱。 3.选一个技术体系,搞精通,比如数据库,比如高并发分布式等 4.搞个自己的网站,国庆前平均每天100访问量。 5.12点前睡觉 2020年1月5日,2020年…

实用的java代码生成器,开箱即用(基于mybatisplus的AutoGenerator)

spring-boot工程下&#xff0c;自动生成代码&#xff0c;controller层&#xff0c;service层&#xff0c;mapper层。 根据数据库配置好的表&#xff0c;逆向生成实体类和各层结构 1、引入maven <dependency><groupId>com.baomidou</groupId><artifactId&…

mac/windows 端口占用解决记录

idea启动报错&#xff1a;端口占用 The port may already be in use or the connector may be misconfigured mac端口占用解决 zhangshuaideMacBook-Pro:~ zhangshuai$ lsof -i:8095 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME Google 375 zhangshuai 32u IPv6 0x…

[配置中心] --- consul

mac下载安装consul 1、下载&#xff1a;consul下载地址 2、解压到目录/usr/local/bin下 3、执行consul文件 4、验证&#xff1a;控制台输入consul验证 5、启动consul&#xff1a;consul agent -dev windows安装consul 1、下载&#xff0c;解压到D:\soft&#xff0c;将这个路…

[java基础] --- java开发,service层是不是一定要写接口

估计很多java开发的同学都遇到过&#xff0c;service层要写一个接口&#xff0c;然后再写接口的实现类&#xff0c;但这个接口从项目开始到项目倒闭&#xff0c;都不会有第二个实现&#xff0c;那为什么不直接写个service类呢&#xff1f;如果你还没想过这个问题&#xff0c;那…

浅谈权限(功能权限数据权限)

一般企业上的权限部分&#xff0c;都是区分为功能权限和数据权限。 一、功能权限 功能权限&#xff0c;就是用户登录后&#xff0c;能看到哪些菜单&#xff0c;能看到哪些按钮&#xff0c;能执行哪些操作的权限。 一般&#xff0c;功能权限&#xff0c;已经都有很成熟的业内方…

一个技术负责人应该知道的规范细节

前言&#xff1a; 作为一个技术负责人&#xff0c;不能只定义一个项目的技术选型&#xff0c;而不注意开发细节。 开发前&#xff0c;如果不预先定义好规范&#xff0c;那么项目中就会乱成一锅粥。每个人自成一派&#xff0c;单看每个人的模块&#xff0c;貌似都没啥大问题&am…

skywalking(1) 基于opentracing规范的APM系统

skywalking是&#xff1a; 基于opentracing规范的APM系统 skywalking解决了什么问题&#xff1f; skywalking解决微服务架构下&#xff0c;多服务直接复杂的调用关系 了解dapper&#xff0c;分布式链路追踪系统 dapper又是谷歌论文&#xff0c;各公司又相继模仿。&#xff…

skywalking(2)

安装 1、安装jdk 2、安装es 3、安装skywalking&#xff08;backend和ui&#xff09; 应用启动时添加探针&#xff08;agent&#xff09; 使用 java -javaagent:/aa/bb/boot.jar -Dserver.port8081 -jar boot.jar 启动项目jar包 查看调用链&#xff0c;追踪等 仪表盘&#…

skywalking(3)

javaagent原理 skywalking实现代码无侵入&#xff0c;就是用了javaagent javaagent是java命令的一个参数&#xff0c;可以用于指定一个jar包 这个jar包中的MANIFEST.MF中&#xff0c;必须指定Premain-Class项 Premain-Class指定的那个类&#xff0c;必须实现premain()方法 当…

skywalking(4)

Byte Buddy库 统计方法调用时长 1、增强字节码 2、拦截器拦截 类似于spring的aop&#xff0c;只不过skywalking不能用aop&#xff0c;所以用Byte Buddy技术代替 Open Trace 整个trace调用&#xff0c;是由多个span组成的有向无环图&#xff08;就是调用关系图&#xff09;。…

kubernetes(k8s)

应用部署演进过程 我们从上图可以看到&#xff0c;应用越来越看重应用本身了&#xff0c;慢慢的不受物理机的差异&#xff0c;不受操作系统的差异&#xff0c;开发者可以花更多精力去到应用本身。 k8s概念 简单理解&#xff0c;k8s就是传统的云平台上的linux。 kubernetes是…