bootstrap-server против параметров zookeeper в консоли потребителя - PullRequest
0 голосов
/ 28 декабря 2018

Я прочитал ветку boostrap-server против zookeeper на потребительской консоли , но мои сомнения не ясны.

Я сомневаюсь, скажем, у нас есть zookeeper на localhost: 2181, три сервера-брокера работают на localhost: 9092, localhost: 9093, localhost: 9094 и у нас есть одна тема my_topic с разделом 3и репликация 1 и тема являются общими для брокеров, поскольку они имеют три раздела.

В новой версии Apache-Kafka, когда мы запускаем консоль потребителя, нам нужно передать --bootstrap-server localhost:9092, который является одним из адресов брокера, но в более ранней версии мы передаем адрес zookeeper.

Итак, когда мы запускаем потребителя для получения сообщения из темы my_topic, мы передаем параметр --bootstrap-server localhost:9092, который является не чем иным, как адресом брокера, поэтому мой вопрос, ограничиваем ли мы потребителя, что выдолжны принимать сообщения только от этого брокера, и если это так, то, скажем, если этот брокер сам по себе не работает, то как потребитель будет читать сообщения из этой темы.Я не понял, как это работает, может кто-нибудь, пожалуйста, очистите его.

Команда более старой версии для потребителя запуска (<1.0) <br>bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from- beginning --topic my_topic
Команда более новой версии для потребителя запуска (> =1,0)
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my_topic

1 Ответ

0 голосов
/ 28 декабря 2018

В предыдущей версии Kafka (до 0.9.0) потребителю требовалось подключение к Zookeeper для фиксации смещения, а также для получения метаданных тем.Начиная с версии 0.9.0, потребительское смещение сохраняется в теме Kafka (__consumer_offset), и подключение к Zookeeper больше не требуется.

То, что вы указываете в параметре --bootstrap-server, точно соответствует имени.говорит.Это список серверов начальной загрузки: это означает, что потребитель подключается к указанным вами брокерам и запрашивает метаданные о темах, которые он хочет использовать.Не ограничивается прием сообщений только от брокеров, указанных в параметре --bootstrap-server.Допустим, вы указываете "kafka1: 9092" в качестве сервера начальной загрузки (в кластере, где у вас есть 3 брокера, как вы сказали).После подключения потребитель отправляет запрос метаданных для получения информации о «my_topic».Сервер "kafka1" может ответить: "Я не лидер для раздела 0 my_topic, здесь брокер, который является лидером для этого kafka2".В этот момент потребитель подключается к брокеру «kafka2» для начала получения сообщений.

...