Kafka bootstrap-серверы против zookeeper в kafka-консоль-потребитель

Я пытаюсь протестировать один узел Кафки с 3 брокерами и zookeeper. Я хочу протестировать с помощью консольных инструментов. Я запускаю продюсера как такового:

kafka-console-producer --broker-list localhost:9092,localhost:9093,localhost:9094 --topic testTopic

затем я запускаю потребителя как такового:

kafka-console-consumer --zookeeper localhost:2181 --topic testTopic --from-beginning

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

kafka-console-consumer --bootstrap-server localhost:9092,localhost:9093,localhost:9094 --topic testTopic --from-beginning

Это сработало хорошо, когда у меня был один брокер работает на порту 9092, поэтому я полностью запутался. Есть ли способ увидеть, что zookeeper предоставляет в качестве сервера начальной загрузки? Отличается ли сервер bootstrap от списка брокеров? Кафка скомпилирован со Scala 2.11.

3 ответов


Я понятия не имею, что случилось. Вероятно, я поставил Кафку или смотрителя зоопарка в странное состояние. После удаления тем в log.dir каждого брокера и zookeeper темы в /brokers/topics затем, воссоздавая тему, потребитель Кафки вел себя так, как ожидалось.


серверы Bootstrap такие же, как брокеры kafka. И если вы хотите увидеть список загрузочного сервера zookeeper, вы можете запросить информацию ZNode через любой клиент ZK. Все активные брокеры зарегистрированы в разделе / brokers/ids / [brokerId]. Все, что вам нужно, это адрес zkQuorum. Ниже команда даст вам список активных bootstrap серверов:

./zookeeper-shell.sh localhost: 2181


Я испытал ту же проблему при использовании несоответствующих версий:

  • клиентские библиотеки Кафки
  • Кафка скрипты
  • Кафка брокеры

в моем точном сценарии я использовал клиентские библиотеки Confluent Kafka версии 0.10.2.1 с платформой Confluent 3.3.0 w / Kafka broker 0.11.0.0. Когда я понизил свою платформу Confluent до 3.3.2, которая соответствовала моим клиентским библиотекам, потребитель работал так, как ожидалось.

моя теория что последний Kafka-console-consumer, использующий новый потребительский API, получал сообщения только с использованием последнего формата. В Kafka 0.11.0.0 был внесен ряд изменений в формат сообщений.