• Русский
  • Введение

    Введение в Kafka

    Kafka — это распределённая платформа потоковой обработки, известная своей высокой пропускной способностью, низкой задержкой, масштабируемостью и отказоустойчивостью. В качестве распределённой очереди сообщений Kafka эффективно транспортирует и хранит большие объёмы данных между различными системами. Она поддерживает различные форматы данных и способна обрабатывать потоки данных в реальном времени, широко используется в сборе логов, событийно-ориентированных архитектурах, аналитике в реальном времени, интеграции данных и во многих других областях. Kafka использует распределённую архитектуру с основными компонентами, включая Producers, Consumers, Topics и Brokers, обеспечивая надёжность данных и высокую доступность за счёт механизмов партиционирования и репликации.

    По режимам развертывания поддерживается:

    • Режим KRaft: следующий поколение режима, который устраняет зависимость от ZooKeeper, используя собственный протокол консенсуса Raft Kafka для управления метаданными.

    Введение в Alauda Streaming Service for Kafka

    Alauda Streaming Service for Kafka — это глубоко оптимизированное решение, разработанное на базе Kubernetes (K8s), предоставляющее удобство полного жизненного цикла управления экземплярами Kafka в кластерах Kubernetes через контроллер (Operator). Оно расширяет API Kubernetes, предоставляя пользователям декларативный подход к конфигурации, автоматизируя эксплуатацию и обслуживание кластеров Kafka, позволяя пользователям легко развертывать, управлять и поддерживать кластеры Kafka в облачно-нативном стиле, тем самым удовлетворяя строгие требования к стабильности, масштабируемости и эффективности в производственных средах.

    Ключевые возможности

    1. Поддержка режима KRaft
      Режим следующего поколения, устраняющий зависимость от ZooKeeper, использующий встроенный протокол Raft Kafka для управления метаданными. Обеспечивает:

      • Упрощённую архитектуру с меньшим количеством компонентов для управления
      • Повышенную масштабируемость для крупных кластеров
      • Быстрый фейловер контроллера
      • Поддержку как комбинированных, так и выделенных ролей контроллера
    2. Контроль доступа и безопасность

      • Поддержка TLS-шифрования для обеспечения безопасности данных при передаче, предотвращая кражу или подделку данных.
      • Предоставление комплексного механизма аутентификации и авторизации пользователей для строгого контроля доступа к кластеру Kafka для различных пользователей или приложений, обеспечивая безопасный доступ к конфиденциальным данным.
    3. Сетевые возможности и методы доступа

      • Поддержка различных типов сервисов Kubernetes, таких как NodePort и LoadBalancer, позволяя пользователям открывать сервисы Kafka для внешних приложений в зависимости от сетевой архитектуры и бизнес-требований. Кроме того, пользователи могут гибко указывать порты NodePort для удовлетворения специфических требований сетевой конфигурации.
      • Полная совместимость как с IPv4, так и с IPv6 сетевыми средами, адаптируясь к различным сетевым сценариям и обеспечивая стабильную работу как в средах с преимущественным использованием традиционных IPv4-сетей, так и в переходных к IPv6 архитектурам.
    4. Эластичное масштабирование

      • Поддержка горизонтального масштабирования онлайн, динамическое добавление узлов Kafka Broker без прерывания сервиса для удовлетворения изменяющихся бизнес-требований. Например, узлы могут добавляться в периоды пиковых нагрузок для увеличения пропускной способности кластера.
      • Поддержка вертикальной настройки ресурсов, гибкое изменение конфигураций CPU, памяти и других ресурсов узлов Kafka Broker на основе фактической нагрузки для оптимизации использования ресурсов.
    5. Обновление и высокая доступность

      • Обеспечение плавного механизма обновления версий, гарантирующего непрерывность сервиса и отсутствие потери данных при обновлении версии Kafka за счёт стратегий поэтапной замены узлов, поддерживая непрерывность бизнес-процессов.
      • Использование механизма мульти-реплик для репликации данных на несколько узлов, позволяющего автоматический фейловер на другие реплики при сбое узла, обеспечивая высокую доступность в производственных средах.
    6. Пользовательские политики планирования

      • Поддержка политик планирования Kubernetes NodeSelector, Toleration и Affinity, позволяя пользователям гибко контролировать логику планирования подов Kafka на основе меток узлов, характеристик узлов и бизнес-требований, тем самым размещая экземпляры Kafka на наиболее подходящих узлах для максимального использования ресурсов кластера.
    7. Автоматизированные возможности эксплуатации и обслуживания

      • Пошаговое масштабирование: при операциях масштабирования используется пошаговый метод, позволяющий постепенно изменять количество узлов Kafka Broker с автоматическим перераспределением данных и балансировкой нагрузки для обеспечения нормальной работы кластера и согласованности данных на протяжении всего процесса.
      • Обновления без простоя: при обновлении версий Kafka или изменении конфигураций отдельные узлы обновляются последовательно, синхронизируя данные и проверяя состояние новых узлов для поддержания непрерывности сервиса и предотвращения влияния на бизнес-операции.