Kafka - это распределенная система, созданная для использования Zookeeper, который отвечает за выбор контроллера, настройку темы, кластеризацию и т. Д.
Точнее, Zookeeper инициирует выбор контроллера. Контроллер-брокер - это единственный брокер в кластере Kafka, который заботится о лидере-брокере и подписчиках для каждого раздела. Когда конкретный брокер отключается, контроллер сообщает другим репликам (для обработки лидеров разделов и т. Д.). Более того, когда контроллер выходит из строя, Zookeeper инициирует новые выборы, чтобы выбрать нового брокера, который будет выполнять функции контроллера.
Кроме того, Zookeeper знает, какие брокеры являются частью кластера Kafka, а какие еще живы. Точно так же он также осведомлен о специфической для темы информации, такой как, какие темы существуют, сколько разделов у каждого есть, где реплики и так далее.
Zookeeper также хранит информацию, касающуюся квот и ACL-списков, то есть, какой объем данных каждому клиенту разрешен для потребителя / производителя и кому разрешено для потребителя или продукта по определенной теме.