Оптимизация продюсера Kafka

У меня есть огромное количество записей данных, которые нужно создать для Kafka с использованием пакетной обработки и сжатия.

Я пробовал многие свойства производителя, чтобы исправить исключение / тайм-аут при отправке данных брокеру.

My one record size is 5486 Bytes(total count is around 20000).

Ниже мои свойства

acks=all
retries=0
batch.size=1MB
buffer.memory=101*1024*1024
linger.ms=1000
key.serializer=org.apache.kafka.common.serialization.StringSerializer
value.serializer=org.apache.kafka.common.serialization.StringSerializer
compression.type=lz4
request.timeout.ms=90000
props.put(ProducerConfig.METADATA_FETCH_TIMEOUT_CONFIG, 90000);
props.put(ProducerConfig.MAX_BLOCK_MS_CONFIG, 90000

определенно увеличение тайм-аута и других больших значений повлияет на пропускную способность моего производителя.

Я сомневаюсь в том, какая из них хороша. 1. Оптимизация размера партии, другие тайм-ауты путем их увеличения. 2. Использование количества повторов + оптимальное значение свойств тайм-аута.

Исключения

1)2018-05-29 09:19:40.919 ERROR 134700 --- [ad | producer-1] o.s.k.support.LoggingProducerListener    : Exception thrown when sending a message with key='null' and payload=' 
org.apache.kafka.common.errors.TimeoutException: Expiring 2 record(s) for demoTopicxyz-0 due to 30012 ms has passed since last append

Не могли бы вы опубликовать исключение, которое вы получаете?

Indraneel Bende 28.05.2018 21:17

Может это поможет: stackoverflow.com/questions/45600395/…

codejitsu 29.05.2018 12:11
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Apache Kafka - популярная платформа распределенной потоковой передачи данных, которую можно использовать для построения конвейеров данных в реальном...
0
2
262
0

Другие вопросы по теме