Каким образом KafkaUtils.createDirectStream () обеспечивает семантику "точно один раз"? - PullRequest
0 голосов
/ 29 декабря 2018

Не уверен, правильно ли я понимаю этот вопрос:

Используя KafkaUtils.createStream(), сама программа является потребителем, который получает данные пассивно.Поскольку Kafka поддерживает только свое собственное смещение, Kafka не знает, где программа потребляет.Таким образом, если происходит сбой Kafka, он может переслать данные, которые были отправлены получателю, и это приведет к дублированию данных.

При использовании KafkaUtils.createDirectStream() сама программа напрямую использует внутренние Kafka разделы, поэтомузнает, где он потребляет, и независимо от того, что само по себе или Kafka терпит неудачу, он может повторно потреблять из правильной позиции.

Я хочу подтвердить, правильно ли я понимаю.Любая помощь приветствуется.

...