KafkaProducer не выдает сообщение> 1 МБ к теме - PullRequest
2 голосов
/ 01 ноября 2019

Я использую 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 ничего не было связано с этим. Пожалуйста, дайте мне знать, если я пропустил какую-либо конфигурацию.

1 Ответ

4 голосов
/ 04 ноября 2019

Пожалуйста, обратите внимание на свойство

max.request.size=1048576

Описание из текущей документации:

Максимальный размер запроса в байтах. Этот параметр будет ограничивать количество пакетов записей, которые производитель отправит за один запрос, чтобы избежать отправки огромных запросов. Это также эффективно ограничивает максимальный размер пакета записи. Обратите внимание, что на сервере установлен собственный предел размера пакета записи, который может отличаться от указанного.

Думаю, это должно вам помочь. Пожалуйста, ознакомьтесь с документацией.

Документация Apache Kafka - конфигурации производителя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...