Использование Apache Kafka без ZooKeeper: подробное руководство

Apache Kafka – популярная распределенная платформа потоковой передачи, которая широко используется для создания конвейеров данных в реальном времени и приложений потоковой передачи. Исторически Kafka полагалась на Apache ZooKeeper для координации и управления кластером. Однако, начиная с версии Kafka 2.8.0, была представлена ​​новая функция под названием Kafka Raft Metadata Quorum, которая устраняет зависимость от ZooKeeper. В этой статье мы рассмотрим различные способы использования Kafka без ZooKeeper, а также приведем примеры кода.

Методы использования Kafka без ZooKeeper:

  1. 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 будет автоматически использовать внутренний кворум метаданных для управления метаданными.

  2. Платформа Confluent.
    Если вы используете платформу Confluent, которая представляет собой корпоративный дистрибутив Kafka, вы можете использовать Центр управления Confluent. Центр управления предоставляет веб-интерфейс для управления и мониторинга кластеров Kafka. Он включает в себя функцию самостоятельного управления метаданными, которая устраняет необходимость в ZooKeeper. Чтобы использовать этот метод, следуйте официальной документации, предоставленной Confluent.

  3. Сторонние инструменты.
    Существует несколько сторонних инструментов и платформ, которые обеспечивают развертывание 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.