A группа потребителей , это набор потребителей, которые координируют прием сообщений от topi c (s). Теперь один из ваших брокеров Kafka действует как координатор группы , который отвечает за координацию всех потребителей, принадлежащих к этой группе.
В зависимости от конфигурации enable.auto.commit
и способа, которым вы обрабатываете управление смещением в своем коде, они будут зафиксированы и сохранены в топике c с именем __consumer_offsets
.
Если для enable.auto.commit
установлено значение True
, то смещение потребителя периодически фиксируется в фоновом режиме. С другой стороны, commitSync()
и commitAsync()
являются блокирующими и неблокирующими вызовами соответственно, которые позволяют фиксировать смещения вручную. Если вы используете один из commitSync()
или commitAsync()
, рекомендуется установить enable.auto.commit
на False
.
В редком случае, когда ваша политика enable.auto.commit
установлена на True
, но в то же время вы используете один из commitSync()
или commitAsync()
, смещения будут зафиксированы в обоих случаях:
- Каждый раз, когда вы звоните
commitSync()
или commitAsync()
- Каждые
N
мс, где N
является настраиваемым параметром (auto.commit.interval.ms
)
Если для enable.auto.commit
установлено значение true
, то наибольшее смещение фиксируется каждый auto.commit.interval.ms
времени. Однако это происходит только всякий раз, когда вызывается poll()
. В каждом опросе (max.poll.interval.ms
) проверяется enable.auto.commit
. Всякий раз, когда вы опрашиваете (), потребитель проверяет, настало ли время передать смещение, возвращенное в последнем опросе.
Подробнее см. В Документация Confluent для управления смещением .