У меня есть огромное количество записей данных, которые нужно создать для 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
Может это поможет: stackoverflow.com/questions/45600395/…

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