从以上源码得出结论,Kafka 会首先判断本次消息大小是否大于 maxRequestSize,如果本次消息大小 maxRequestSize,则直接抛出异常,不会继续执行追加消息到 batch。 并且还会在 Sender 线程发送数据到 broker 之前,会使用 max.request.size 限制发送请求数据的大小: org.apache.kafka.clients.producer.internals.Sender#sendPro...
在你的 Kafka 生产者客户端中,增加或修改max.request.size配置项。例如,在 Spring Kafka 中,你可以设置: # 最大请求大小(字节) max.request.size=5000000 # 设置为服务器端的值 调整生产者的batch.size配置: batch.size配置项控制单个批次的最大字节数。确保这个值不会导致单个消息超过max.request.size: # 单...
答案显然是不会,根据上述所说,如果一个 ProducerRecord 就已经超出了 batch.size 的大小,那么 ProducerBatch 仅包含一个 ProducerRecord,并且该 ProducerBatch 并不会加入到 BufferPool 中。 所以,在KafkaProducer 调优过程中,根据业务需求,需要特别注意 batch.size 与 max.request.size 之间的大小值的设定,避免内存...
原回答者GitHub用户agapple
检查配置文件: 确保在 Kafka Connect 的配置文件中正确设置了max.request.size参数。例如: 检查配置文件: 确保在 Kafka Connect 的配置文件中正确设置了max.request.size参数。例如: 调整JVM 参数: 增加 JVM 的堆内存大小,以确保能够处理较大的请求。可以在启动 Kafka Connect 时设置 JVM 参数: ...
fetch.message.max.bytes=2147483647 #每个提取请求中为每个主题分区提取的消息字节数。要大于等于message.max.bytes,否则broker就会因为消费端无法使用这个消息而挂起。 生产者可以如下设定: kafkaProps.put("max.request.size", 2147483647); # 要小于 message.max.bytes,也可以设置在producer.properties配置文件中 ...
在producer 端需要修改max.request.size参数的值,以便可以发送大消息,要确保该值小于等于broker 上配置的message.max.bytes。 在CLI 中可以使用可以使用--consumer-property参数进行设置。 代码语言:javascript 复制 kafka-console-producer.sh--bootstrap-server localhost:9092\--topic large-message \--producer-proper...
Caused by: java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.RecordTooLargeException: The message is 1625221 bytes when serialized which is larger than the maximum request size you have configured with the max.request.size configuration. ...
在服务端的配置文件server.properties加上的message.max.bytes配置,我目前设置为20971520,即20MB,还可以根据实际情况增大。在生产者端配置max.request.size,这是单个消息最大字节数,根据摄像头清晰度调整,max.request.size必须小于message.max.bytes以及消费者的max.partition.fetch.bytes。这样消息就能不断发送。