Как несколько потребителей из разных групп читают из одного раздела? - PullRequest
0 голосов
/ 06 марта 2020

У меня есть сценарий использования, когда у меня есть 2 потребителя в разных группах потребителей (cg1 и cg2), подписывающихся на одну и ту же топи c (топи c A) с 4 разделами. Что произойдет, если оба потребителя читают данные из одного и того же раздела, а один из них завершился неудачно, а другой зафиксировал смещение?

Ответы [ 3 ]

1 голос
/ 06 марта 2020

В Kafka управление смещением осуществляется Группа потребителей на раздел .

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

1 голос
/ 06 марта 2020

Один потребитель из группы потребителей может читать данные из одного раздела topi c. Один потребитель не может читать данные из нескольких разделов topi c.

Пример Потребитель 1 из группы потребителей 1 может читать данные только из одного раздела topi c.

Управление смещением осуществляется zookeeper.

__ consumer_offsets: Каждая группа потребителей поддерживает свое смещение для разделов topi c. Начиная с версии 0.9 информация о принятых смещениях для каждой группы потребителей хранится в этой внутренней топике c (до версии 0,9 эта информация хранилась в Zookeeper).

Когда менеджер смещения получает запрос OffsetCommitRequest, он добавляет запрос к специальной сжатой топике Kafka c с именем __consumer_offsets. Наконец, диспетчер смещений отправит получателю ответ об успешной фиксации смещения, только когда все реплики смещений topi c получат смещения.

enter image description here

0 голосов
/ 06 марта 2020

одновременно два потребителя из двух разных групп потребителей (cg1 и cg2) могут читать данные из одной и той же топи c.

В кафке 1: Управление смещением осуществляется zookeeper.

В kafka 2: смещения каждого потребителя хранятся в __Consumer_offsets topi c

Смещение, используемое для отслеживания потребителей (сколько записей потреблено потребителями), скажем, потребитель-1 потребляет 10 записей, а потребитель -2 потребляют-20 записей, и внезапно потребитель-1 умирает теперь, когда потребитель-1 поднимется, тогда он начнет читать с 11-й записи .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...