KafkaConsumer CPP API assign () с автоматической фиксацией - PullRequest
0 голосов
/ 27 мая 2020

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

Вопрос 1: Я хочу понять, как здесь работает автокоммит. Допустим, есть 2 потребителя, у которых одинаковый groupId. Оба они получат все обновления, но может ли кто-нибудь помочь мне понять, как здесь будет происходить фиксация? Если есть только один потребитель, фиксация происходит с использованием идентификатора группы потребителей. Но как это работает с 2 потребителями. В этих случаях я не вижу сбоев при фиксации.

Вопрос 2: Как работает rd_kafka_offsets_store, когда я назначаю раздел. У них go все хорошо, или мне следует использовать подписку в этих случаях?

1 Ответ

1 голос
/ 28 мая 2020
  1. Два не подписавшихся потребителя с одним и тем же group.id будут фиксировать смещения для назначенных им разделов без корреляции или разрешения конфликтов, если им назначены одни и те же разделы, они перезапишут коммиты друг друга. Либо используйте уникальный group.id, либо подпишитесь на темы.
  2. rd_kafka_offsets_store() работает таким же образом с assign() или subscribe(), а именно, сохраняя (в памяти) смещение для фиксации при следующем автоматическом режиме или ручная фиксация.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...