kafka-producer-perf-test.sh 进行大消息(6M) 的压测时,报 errors.RecordTooLargeException

▓千年祇园 卐 发表于: 2022-10-14   最后更新时间: 2022-10-14 16:39:45   885 游览

运用自带压测脚本如下:

bin/kafka-producer-perf-test.sh --topic large-message --record-size 6291456 --num-records 100 --throughput -1 --producer-props bootstrap.servers=15.101.52.138:9092

报告以下错误:

org.apache.kafka.common.errors.RecordTooLargeException: The message is 6291544 bytes when serialized which is larger than 1048576, which is the value of the max.request.size configuration.

已经尝试配置以下脚本:

生产者配置:

max.request.size=12582912

服务端配置:

message.max.bytes=12695150
replica.fetch.max.bytes=20485760

请问以上配置是否有误呢,另外还尝试配置过消费者配置,重启kafka,执行以上命令仍然报告以上错误,麻烦大佬看看,谢谢

发表于 2022-10-14
添加评论

which is larger than 1048576,这个错误的数量变化了吗?

如果错误提示的大小已经是改过后的,说明你还需要加大。
如果是之前的大小,说明你的调整没有生效。

谢谢@半兽人的回复,这个数1048576一直没有改变,提示的是这个数。是因为我在producer.properties里更改的配置max.request.size=12582912 而运行的却是 kafka-producer-perf-test.sh脚本的缘故么?我也重新启动几次kafka了

是的,这俩个是不同的脚本。

哦,这个应该是一个是配置文件producer.properties,一个是运行脚本kafka-producer-perf-test.sh,后面这个运行脚本对修改producer.properties不会生效么?

你需要在压测脚本命令增加--producer.config指定你的producer.properties,如下:

bin/kafka-producer-perf-test.sh ...省略... --producer.config config/producer.properties

强!原来如此。如果单独的用kafka-console-producer.sh脚本发送消息,就不用指明 --producer.config config/producer.properties 配置信息了吧

什么意思?

意思是用kafka-console-producer.sh脚本来发送大消息,比如一条消息超过8M, 这样在启动这个脚本时,是不是不需要指定--producer.config config/producer.properties 选项了?此外,顺便请教下,如果批量发送这么大的消息,一般采用什么策略呢?分片?压缩还是其它的

你的答案

查看kafka相关的其他问题或提一个您自己的问题