Как сделать так, чтобы группа потребителей A принимала смещение группы потребителей B, но не влияя на зафиксированное смещение А? - PullRequest
0 голосов
/ 01 мая 2020

Я создал топи c "Элемент" и у него 8 разделов.

Кроме того, у меня есть две группы потребителей А и В, которые слушают эту топи c , Группа потребителей А имеет смещение на каждом из разделов.

Однако я бы хотел установить смещение *1008* группы потребителей B для группы потребителей , чтобы потребитель B мог начать получать сообщения от где A оставлено без влияния на зафиксированные смещения А. Скажем, у меня есть база данных, в которой хранится смещение потребителя А, и я бы хотел, чтобы Б. потреблял оттуда.

Позвольте мне добавить вариант использования: Группа А вставляет сообщения в таблицу в базе данных вместе со смещениями. Однако в какой-то момент я скопировал таблицу в другую базу данных. Но я скопировал снимок (скажем, снимок за 10 минут go) этой таблицы, поэтому некоторые сделки, вставленные за последние 10 минут, отсутствуют. В этом случае я хочу использовать группу B для заполнения пропущенных сделок в скопированной таблице. Поэтому я хотел бы, чтобы группа B установила для своих смещений смещения, сохраненные в последнем вставленном элементе в этой таблице.

Есть ли способ достичь этого? Пожалуйста, поправьте меня, если я что-то не так понял.

1 Ответ

0 голосов
/ 01 мая 2020

Вы можете вручную изменить смещения Consumer Group B, используя инструмент ConsumerGroup Command. Некоторую информацию можно найти в документации Kafka Управление группами потребителей.

Если вы планируете сбросить определенную группу потребителей ("consumerB"), вы можете использовать

> bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --reset-offsets --group consumerB --topic Item --to-latest
* 1007. * Есть также варианты, доступные для каждого отдельного раздела. Таким образом, вы можете установить смещение на частичное смещение потребителя A.
...