Getting the following error (Kafka 2.1.0):
2018-12-03 21:22:37.873 ERROR 37645 --- [nio-8080-exec-1] o.s.k.support.LoggingProducerListener : Exception thrown when sending a message with key='null' and payload='{82, 73, 70, 70, 36, 96, 19, 0, 87, 65, 86, 69, 102, 109, 116, 32, 16, 0, 0, 0, 1, 0, 1, 0, 68, -84,...' to topic recieved_sound: org.apache.kafka.common.errors.RecordTooLargeException: The message is 1269892 bytes when serialized which is larger than the maximum request size you have configured with the max.request.size configuration.
I tried all the suggestions in various SO posts.
My Producer.properties:
max.request.size=41943040
message.max.bytes=41943040
replica.fetch.max.bytes=41943040
fetch.message.max.bytes=41943040
Server.properties:
socket.request.max.bytes=104857600
message.max.bytes=41943040
max.request.size=41943040
replica.fetch.max.bytes=41943040
fetch.message.max.bytes=41943040
ProducerConfig (Spring Boot):
configProps.put("message.max.bytes", "41943040");
configProps.put("max.request.size", "41943040");
configProps.put("replica.fetch.max.bytes", "41943040");
configProps.put("fetch.message.max.bytes", "41943040");
ConsumerConfig (SpringBoot):
props.put("fetch.message.max.bytes", "41943040");
props.put("message.max.bytes", "41943040");
props.put("max.request.size", "41943040");
props.put("replica.fetch.max.bytes", "41943040");
props.put("fetch.message.max.bytes", "41943040");
I also changed Strings to numbers in the last 2 files. Started brokers multiple times, and created new topics. I was getting org.apache.kafka.common.errors.RecordTooLargeException: The request included a message larger than the max message size the server will accept
error initially, which got fixed by these changes, but still no luck with this new error.
Set a breakpoint in KafkaProducer.ensureValidRecordSize()
to see what's going on.
With this app
@SpringBootApplication
public class So53605262Application {
public static void main(String[] args) {
SpringApplication.run(So53605262Application.class, args);
}
@Bean
public NewTopic topic() {
return new NewTopic("so53605262", 1, (short) 1);
}
@Bean
public ApplicationRunner runner(KafkaTemplate<String, String> template) {
return args -> template.send("so53605262", new String(new byte[1024 * 1024 * 2]));
}
}
I get
The message is 2097240 bytes when serialized which is larger than the maximum request size you have configured with the max.request.size configuration.
as expected; when I add
spring.kafka.producer.properties.max.request.size=3000000
(which is the equivalent of your config but using Spring Boot properties), I get
The request included a message larger than the max message size the server will accept.
If debugging doesn't help, perhaps you can post a complete small app that exhibits the behavior you see.