Apache Kafka – популярная распределенная платформа потоковой передачи, которая широко используется для создания конвейеров данных в реальном времени и приложений потоковой передачи. Исторически Kafka полагалась на Apache ZooKeeper для координации и управления кластером. Однако, начиная с версии Kafka 2.8.0, была представлена новая функция под названием Kafka Raft Metadata Quorum, которая устраняет зависимость от ZooKeeper. В этой статье мы рассмотрим различные способы использования Kafka без ZooKeeper, а также приведем примеры кода.
Методы использования Kafka без ZooKeeper:
-
Kafka с внутренним кворумом метаданных:
Кворум метаданных Kafka Raft — это встроенная функция, которая позволяет Kafka управлять своими метаданными внутри компании, не полагаясь на ZooKeeper. Чтобы использовать этот метод, вам необходимо настроить Kafka со следующими параметрами:# server.properties listeners=PLAINTEXT://localhost:9092 inter.broker.listener.name=PLAINTEXT log.dirs=/tmp/kafka-logs broker.id=0Настроив эти свойства, Kafka будет автоматически использовать внутренний кворум метаданных для управления метаданными.
-
Платформа Confluent.
Если вы используете платформу Confluent, которая представляет собой корпоративный дистрибутив Kafka, вы можете использовать Центр управления Confluent. Центр управления предоставляет веб-интерфейс для управления и мониторинга кластеров Kafka. Он включает в себя функцию самостоятельного управления метаданными, которая устраняет необходимость в ZooKeeper. Чтобы использовать этот метод, следуйте официальной документации, предоставленной Confluent. -
Сторонние инструменты.
Существует несколько сторонних инструментов и платформ, которые обеспечивают развертывание Kafka без ZooKeeper. Например:-
Strimzi: Strimzi — это проект с открытым исходным кодом, предлагающий собственное решение Kubernetes для запуска Apache Kafka. Он поддерживает запуск Kafka без ZooKeeper за счет использования функции кворума метаданных Kafka Raft.
-
Redpanda: Redpanda — это совместимая с Kafka платформа потоковой передачи событий, предназначенная для полной замены Kafka. Он использует собственный механизм хранения и устраняет зависимость ZooKeeper.
-
Eventador: Eventador — это полностью управляемый сервис Kafka, работающий на Kubernetes. Он использует функцию кворума метаданных Kafka Raft и обеспечивает развертывание Kafka без ZooKeeper.
-
С появлением функции кворума метаданных Kafka Raft теперь можно использовать Kafka без ZooKeeper. В этой статье мы рассмотрели различные методы достижения этой цели, в том числе встроенный внутренний кворум метаданных, использование Confluent Platform и использование сторонних инструментов, таких как Strimzi, Redpanda и Eventador. Приняв эти методы, вы сможете упростить развертывание Kafka и устранить необходимость в ZooKeeper.