Spring boot Spring Kafka-生产者:尝试发送长消息时超时异常

Spring boot Spring Kafka-生产者:尝试发送长消息时超时异常,spring-boot,spring-kafka,Spring Boot,Spring Kafka,我试图通过Kafka发送base64编码的字符串,这些字符串的大小通常为2mb。我已将Spring Kafka producer配置如下: @Bean public ProducerFactory<String, String> producerFactory() { Map<String, Object> configProps = new HashMap<>(); configProps.put(ProducerConfig.BOOTSTR

我试图通过Kafka发送base64编码的字符串,这些字符串的大小通常为2mb。我已将Spring Kafka producer配置如下:

@Bean
public ProducerFactory<String, String> producerFactory() {
    Map<String, Object> configProps = new HashMap<>();
    configProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
    configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
    configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
    configProps.put(ProducerConfig.MAX_REQUEST_SIZE_CONFIG, 4194304);
    configProps.put(ProducerConfig.BATCH_SIZE_CONFIG, 1);
    configProps.put(ProducerConfig.COMPRESSION_TYPE_CONFIG, "snappy");
    return new DefaultKafkaProducerFactory<>(configProps);
}
我尝试过的事情:

configProps.put(ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG, 90000);


与kafka broker的连接在自动创建主题时起作用。即使尝试了上述修复的各种组合,错误仍然会持续存在。

请尝试设置此属性:

configProps.put(ProducerConfig.MAX_BLOCK_MS_CONFIG, 120000);
这应该可以很好地工作,因为对于当前配置,消息的大小更大,您需要对其进行更多扩展

configProps.put(ProducerConfig.BATCH_SIZE_CONFIG, 10);
configProps.put(ProducerConfig.BATCH_SIZE_CONFIG, 0);
configProps.put(ProducerConfig.MAX_BLOCK_MS_CONFIG, 120000);