Взаимосвязь ресурсов в Managed Service for Apache Kafka®
Apache Kafka® — это распределенная система для обмена сообщениями между приложениями по принципу «публикация-подписка».
Сервис Yandex Managed Service for Apache Kafka® помогает разворачивать и поддерживать кластеры серверов Apache Kafka® версий 3.5, 3.6, 3.7, 3.8 или 3.9 в инфраструктуре Yandex Cloud.
Каждый кластер Managed Service for Apache Kafka® состоит из одного или нескольких хостов-брокеров, на которых размещены топики и их разделы. Хосты кластера могут находиться в разных зонах доступности. Подробнее о географии Yandex Cloud см. в разделе Обзор платформы.
Если все хосты-брокеры созданы в одной зоне доступности, то их количество нельзя изменить.
К хостам кластера подключаются клиенты — приложения-производители и потребители данных. Производители отправляют сообщения в определенные топики кластера, а потребители читают сообщения из них. При таком подходе вам не понадобится заново настраивать потребителей, если производитель изменится.
При работе необходимо учитывать, что контролирует сервис, а что — клиент Yandex Cloud. Понимание этих зон контроля помогает эффективно использовать облачные ресурсы и избегать возможных проблем при работе с базами данных. Подробнее см. Разграничение зон контроля пользователей сервисов управляемых баз данных (MDB) и Yandex Cloud.
Конфигурация хостов в зависимости от версии Apache Kafka®
В различных версиях Apache Kafka® используются разные инструменты для хранения метаданных, состояния и конфигурации кластера:
- в версиях 3.5 и ниже поддерживается ZooKeeper;
- в версии 3.6 и до версии 3.9 (включительно) поддерживаются ZooKeeper и Apache Kafka® Raft;
- в версиях 4.0 и выше поддерживается только Apache Kafka® Raft.
Примечание
По умолчанию для хостов ZooKeeper и KRaft задаются следующие характеристики:
- класс хоста —
s3-c2-m8; - объем диска —
10ГБ; - тип диска —
network-ssd.
Конфигурация хостов в кластерах с ZooKeeper
ZooKeeper автоматически настраивается и размещается в кластере в зависимости от количества хостов-брокеров:
- Если кластер Apache Kafka® состоит из одного хоста-брокера, то ZooKeeper размещается на этом же хосте.
- Если кластер Apache Kafka® состоит из более чем одного хоста, то ZooKeeper размещается отдельно от брокеров на трех дополнительных хостах. Эти хосты добавляются в кластер автоматически.
Хосты ZooKeeper нельзя удалить. Количество хостов ZooKeeper фиксировано.
Подробнее о создании кластера Managed Service for Apache Kafka® с ZooKeeper см. в инструкции.
Конфигурация хостов в кластерах с Apache Kafka® Raft
Протокол Apache Kafka® Raft (сокращенно KRaft) используется для хранения метаданных вместо ZooKeeper.
KRaft автоматически настраивается и размещается в кластере в зависимости от выбранного режима работы и количества хостов-брокеров:
-
KRaft (комбинированный режим) — на одном хосте Apache Kafka® одновременно размещаются брокер и контроллер метаданных KRaft. При этом в кластере создаются только три хоста Apache Kafka® в одной из конфигураций:
- три хоста находятся в одной зоне доступности;
- каждый хост расположен в отдельной зоне доступности.
Задать количество хостов-брокеров вручную нельзя.
-
KRaft (на отдельных хостах) — брокер и контроллер метаданных KRaft размещаются на отдельных хостах. При создании кластера с несколькими хостами, в него добавляются три выделенных хоста KRaft.
Количество хостов-брокеров задается вручную.
Хосты KRaft нельзя удалить. Количество хостов KRaft фиксировано.
Подробнее о создании кластера Managed Service for Apache Kafka® с протоколом KRaft см. в инструкции.
Более подробная информация приведена в документации Apache Kafka®