Текущее поведение смещения, если установлено kafka-consumer-groups как самое раннее? - PullRequest
2 голосов
/ 26 мая 2019

У меня есть тема kafka с 25 разделами, и кластер работает в течение 5 месяцев.

В соответствии с моим пониманием для каждого раздела для данной темы, смещение начинается с 0,1,2 ... (неограниченно)

Я вижу смещение конца журнала при очень высоком значении (сейчас -> 1230628032)

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

Команда, которую я использовал для создания новой группы потребителей со смещением до самого раннего:

kafka-consumer-groups  --bootstrap-server <IP_address>:9092 --reset-offsets --to-earliest --topic some-topic --group to-earliest-cons --execute

Я вижу, что создается группа потребителей. Я ожидал, что текущее смещение равно 0; однако, когда я описал группу потребителей, текущее смещение было очень высоким, на данный момент -> 1143755193.

Срок хранения установлен на 7 дней (стандартное значение).

Мой вопрос: почему мы не увидели первое смещение, из которого потребитель из этой группы потребителей будет читать 0? Это как-то связано с сохранением данных?

Может кто-нибудь помочь понять это?

1 Ответ

3 голосов
/ 26 мая 2019

Это именно сохранение данных.Весьма вероятно, что Kafka уже удалил старые сообщения со смещением 0 из ваших разделов, поэтому начинать с 0 не имеет смысла. Вместо этого Kafka установит смещение как самое раннее из доступных сообщений в вашем разделе.Вы можете проверить эти смещения, используя:

./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list <IP_address>:9092 --topic some-topic --time -2

Вероятно, вы увидите значения, действительно близкие к тому, что вы видите, как новое потребительское смещение.

Вы также можете попытаться установить смещение явно равным 0:

./kafka-consumer-groups.sh  --bootstrap-server <IP_address>:9092 --reset-offsets --to-offset 0 --topic some-topic --group to-earliest-cons --execute

Однако вы увидите предупреждение о том, что смещение 0 не существует и будет использоваться более высокое значение (упомянуто самое раннее доступное сообщение)

New offset (0) is lower than earliest offset for topic partition some-topic. Value will be set to 1143755193
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...