Bootstrap server против zookeeper в Кафке?

Почему использование zookeeper в kafka-consumer устарело и почему вместо этого рекомендуется использовать сервер начальной загрузки ? в чем преимущества bootstrap-сервера?

3 ответов


потребителю Кафки нужно зафиксировать смещение Кафке и получить смещение от Кафки , так как Кафка переместил хранилище смещения от zookeeper к брокерам Кафки, Кафке-потребителю не нужно напрямую общаться с zookeeper, поэтому новому потребителю Кафки не нужно настраивать zookeeper. Но потребителю kafka всегда нужно подключиться к брокерам kafka (кластеру), чтобы отправить запрос на сервер, загрузочный сервер-это всего лишь некоторые брокеры этого кластера, и используя это, потребитель может найти все брокер.


  • в более старой версии Kafka (v 0.9.0) Kafka используется для хранения данных на сервере Kafka, и вся связанная с смещением информация, такая как (текущие смещения разделов), хранилась в zookeeper. Поэтому для запуска потребителя требуются как данные, так и метаданные.Поэтому для получения метаданных он должен позвонить zookeeper. Вот почему он использует как zookeeper, так и Кафку. ex Старый Код Потребителя
  • в новых версиях Кафки i.e (v 0.10.0 - выше). В нем хранятся все метаданные темы ИНФОРМАЦИЯ (Общее количество разделов и их текущие смещения) в разделе __consumer_offset на том же сервере Kafka. Так что теперь только брокеру Кафки нужно общаться только с zookeeper и потребитель получает все данные и метаданные от самого kafkabroker, поэтому ему больше не нужно общаться с zookeeper.

преимущество текущей архитектуры : 1. Данные и метаданные в одном и том же месте очень просты в управлении.


в текущем инструменте kafka-consumer с помощью аргументов --zookeeper или --bootstrap-server различают использование старого и нового потребителя. Старый потребитель нуждается в подключении Zookeeper, потому что смещение сохраняется там. Новый потребитель больше не нуждается в Zookeeper, потому что смещения сохраняются в __consumer_offset на брокерах Кафки. Использование старого потребителя сегодня не рекомендуется, поэтому для новых приложений лучше использовать новую реализацию.