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 был внесен ряд изменений в формат сообщений.