Прежде чем присоединить потребителей к новой теме, я создаю новую тему и выводю сообщение в apache kafka. - PullRequest
0 голосов
/ 05 июля 2018

Прежде чем присоединить потребителей к новой теме, я создаю новую тему и выдаю первое сообщение в apache kafka. Затем присоединяются потребители для новой темы, но первое сообщение не может быть использовано. Почему? ..

В этом случае уже смещение конца журнала = 1, зафиксированное смещение = 1, лаг = 0.

Разве "commited offset = 1" не означает, что он уже использовался? У меня вопрос, почему он уже употреблен. Дайте мне знать, если есть что-то, с чем я не прав.

Это мой тестовый пример.

# create new topic 
$ kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic NEW_TOPIC_NAME

# produce a first message
$ kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic NEW_TOPIC_NAME
  > send a first message

# then execute consumer
$ kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic NEW_TOPIC_NAME
  >   # no consume a first message

Но после того, как потребители для новой темы прикреплены, я создаю второе сообщение, затем обычно потребляю.

1 Ответ

0 голосов
/ 05 июля 2018

По умолчанию kafka-console-consumer начинается с конца темы.

Если вы хотите использовать сообщения, созданные ранее, вы можете установить --from-beginning, например:

kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 
  --topic NEW_TOPIC_NAME --from-beginning
...