Кафка, commitSync на успех - PullRequest
       7

Кафка, commitSync на успех

0 голосов
/ 15 января 2019

Я пытаюсь выяснить, нужно ли мне включать фиксацию вручную с помощью KafkaConsumer.commitSync (смещения карты)

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

Кажется ли commitSync методом, который мне нужно вызвать?

Если я не использовал commitSync, а вместо этого использовал автоматическую фиксацию смещения, есть ли у меня возможность потерять события, когда служба взрывается при попытке обработать несколько событий Kafka. Другими словами, при использовании автоматической фиксации смещения в какой момент фиксируются смещения?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

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

Например, в системе CQRS для обработки команд потребуетсясинхронная фиксация, при записи данных в проекцию СУБД, вероятно, будет нормально работать с асинхронной фиксацией.

0 голосов
/ 15 января 2019

Если вы не используете KafkaConsumer::commitSync и предпочитаете механизм автоматической фиксации, вы не потеряете ни одно сообщение, но вы можете обрабатывать одно и то же сообщение несколько раз, например, если вы обработаете сообщение и сохраните результат где-то и ваше приложение взорвется (перед сохранением смещения будет автокоммит), чем после перезапуска ваше приложение начнет обработку с последнего зафиксированного смещения, и это может привести к тому, что одно и то же сообщение будет обработано несколько раз.

Тот же сценарий также может произойти, если вы будете использовать KafkaConsumer::commitSync, но в этом случае вручную управляя фиксацией вы можете зафиксировать после обработки каждого сообщения и, самое большее, вы обработаете только одно сообщение. Недостатком этого является низкая пропускная способность.

...