как зоокеперу поговорить с кафкой чтобы узнать кафка вышла - PullRequest
0 голосов
/ 01 октября 2018

у нас есть 3 машины kafka и 3 сервера zookeper

, в то время как машины kafka не размещаются совместно с сервером zookeper (kafka находятся на разных машинах, ОС - redhat версии 7.x)

чтобы получить идентификатор брокера, мы делаем следующее на серверах zookeper

cd /usr/hdp/current/zookeeper-server/bin

./zkCli.sh

ls /brokers/ids

результаты должны быть идентифицированы тремя брокерами как

1011  1012  1013

мой вопрос - каким образомzookeper знает, что брокер запущен?

или, если быть более точным,

, какой клиент zookeper выполняет для определения того, что брокер kafka запущен?

1 Ответ

0 голосов
/ 01 октября 2018

Zookeeper - это в основном распределенное хранилище значений ключей.После запуска брокер Kafka подключается к Zookeeper (используя настройку zookeeper.connect) и создает znode (пару ключ-значение) со своим собственным broker.id в /brokers/ids.Брокеры Kafka остаются подключенными к Zookeeper, пока они работают.

Znode создается как "Ephemeral" (это особенность Zookeeper).Это означает, что Zookeeper удалит его, если брокер отключится.

Таким образом, Zookeeper в любое время знает, какие брокеры живы (это не обязательно означает, что брокер здоров!).Это используется брокерами для обнаружения других брокеров в кластере.

...