Kafka Stream: Частота коммитов потребителей - PullRequest
0 голосов
/ 13 мая 2018

С гарантией, по крайней мере, один раз, я понимаю, что существует возможность дублирования в случае сбоев. Однако
1) Как часто библиотека Kafka Stream выполняет коммиты?
2) Пользователям когда-нибудь нужно подумать о совершении в дополнение к вышесказанному?
3) Есть ли лучшая практика относительно того, как часто следует выполнять коммит?

1 Ответ

0 голосов
/ 14 мая 2018

Kafka Streams фиксирует данные через регулярные интервалы, которые можно настроить с помощью параметра commit.interval.ms (по умолчанию 30 секунд; если включена однократная обработка, по умолчанию 100 мс).

Обычно пользователям нет необходимости фиксировать их вручную. Обратите внимание, что пользователи не имеют полного контроля над фиксацией, а могут только запросить фиксацию: ср. Как сделать коммит вручную с Kafka Stream?

Коммиты - это точка синхронизации, и если вы делаете коммит слишком часто (например, после каждой обработанной записи), ваша пропускная способность может значительно снизиться. Это также сильно зависит от приложения, потому что частота фиксации определяет, сколько потенциальных дубликатов процессов приложения (это также зависит от скорости входных данных). Таким образом, вам нужно учитывать, сколько дубликатов в случае неудачи вы готовы терпеть. Это также зависит от того, сколько времени потребуется приложению для повторной обработки данных: в течение этого времени приложение может быть не полностью доступно. В целом, трудно дать рекомендацию, и вам необходимо учитывать описанные компромиссы для каждого приложения в отдельности.

...