Публикуйте объекты Кафки партиями - PullRequest
0 голосов
/ 21 мая 2019

Я использую метод KafkaProducer.send () для публикации записей в Kafka. Это асинхронный метод. Мое приложение публикует около 20 тысяч записей в Кафке Много раз после успешной отправки около 10 тыс. Записей я получаю исключение по таймауту. Я увеличил batch.size и linger.ms, что уменьшило проблему, но иногда я получаю исключение по таймауту. Есть ли способ отправить только 10 тыс. Записей за один раз, дождаться их завершения и затем отправить следующий пакет ?? Я не хочу делать это синхронно с помощью send.get (), потому что это сделает его очень медленным. Это исключение, которое я получаю.

Error publishing object on partition 0 org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s)

1 Ответ

0 голосов
/ 21 мая 2019

Вы пытались установить retries=3 в конфигурации производителя?
И, вероятно, в случае истечения срока действия записи вам не нужно увеличивать batch.size, а уменьшать его.

...