Я использую kafka_2.11-2.2.1. У меня ниже настройки в server.properties.
message.max.bytes=20971520
replica.fetch.max.bytes=23068672
Конфигурация производителя на уровне кода.
@Bean("serviceKafkaTemplate")
public KafkaTemplate kafkaTemplate(@Autowired final ProducerFactory producerFactory) {
return new KafkaTemplate(producerFactory);
}
@Bean
public ProducerFactory<String, Object> producerFactory() {
return new DefaultKafkaProducerFactory(props());
}
private Properties props() {
Properties properties = new Properties();
properties.put(ProducerConfig.COMPRESSION_TYPE_CONFIG, "gzip");
properties.put(ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG, 10000);
properties.put(ProducerConfig.BATCH_SIZE_CONFIG, 1);
properties.put(ProducerConfig.LINGER_MS_CONFIG, 1);
properties.put(ProducerConfig.MAX_REQUEST_SIZE_CONFIG, 15728640);
properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
return properties;
}
@Autowired
private KafkaTemplate serviceKafkaTemplate;
serviceKafkaTemplate.send("topic_name", data);
Я говорю только о производителе, а не о потребителе. Когда я проверяю смещение с помощью cmd, оно не увеличивается, что означает, что производитель не отправляет данные. Если размер данных меньше 1 МБ, то он работает, а текущий размер составляет 1,75 МБ. Также в файле kafka server.log ничего не было связано с этим. Пожалуйста, дайте мне знать, если я пропустил какую-либо конфигурацию.