Взаимосвязь ресурсов в Managed Service for Apache Kafka®
Apache Kafka® — это распределенная система для обмена сообщениями между приложениями по принципу «публикация-подписка».
Сервис Yandex Managed Service for Apache Kafka® помогает разворачивать и поддерживать кластеры серверов Apache Kafka® версий 2.8, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5 и 3.6 в инфраструктуре Yandex Cloud.
Каждый кластер Managed Service for Apache Kafka® состоит из одного или нескольких хостов-брокеров, на которых размещены топики и их разделы. Хосты кластера могут находиться в разных зонах доступности. Подробнее о географии Yandex Cloud см. в разделе Обзор платформы.
Если все хосты-брокеры созданы в одной зоне доступности, то их количество нельзя изменить.
К хостам кластера подключаются клиенты — приложения-производители и потребители данных. Производители отправляют сообщения в определенные топики кластера, а потребители читают сообщения из них. При таком подходе вам не понадобится заново настраивать потребителей, если производитель изменится.
Конфигурация хостов в зависимости от версии Apache Kafka®
В различных версиях Apache Kafka® используются разные инструменты для хранения метаданных, состояния и конфигурации кластера:
- в версиях 3.5 и ниже используется ZooKeeper;
- в версиях 3.6 и выше используется Apache Kafka® Raft.
Количество и тип хостов в обоих случаях отличается.
Конфигурация хостов в кластерах с ZooKeeper
ZooKeeper автоматически настраивается и размещается в кластере в зависимости от количества хостов-брокеров:
- Если кластер Apache Kafka® состоит из одного хоста-брокера, то ZooKeeper размещается на этом же хосте.
- Если кластер Apache Kafka® состоит из более чем одного хоста, то ZooKeeper размещается отдельно от брокеров на трех дополнительных хостах. Эти хосты добавляются в кластер автоматически.
Хосты ZooKeeper нельзя удалить. Количество хостов ZooKeeper фиксировано.
Подробнее о создании кластера Managed Service for Apache Kafka® с ZooKeeper см. в инструкции.
Примечание
По умолчанию для хостов ZooKeeper задаются следующие характеристики:
- класс хоста
b2.medium
; - объем диска
10
ГБ; - тип диска —
network-ssd-nonreplicated
.
Конфигурация хостов в кластерах с Apache Kafka® Raft
Протокол Apache Kafka® Raft (сокращенно KRaft) используется для хранения метаданных вместо ZooKeeper в версиях Apache Kafka® 3.6 и выше.
В кластерах Managed Service for Apache Kafka® с протоколом KRaft применяется только комбинированный режим, когда на одном хосте Apache Kafka® одновременно размещается брокер и контроллер метаданных KRaft. При этом в кластере создаются только три хоста Apache Kafka® в одной из конфигураций:
- либо все три находятся в одной зоне доступности;
- либо каждый хост расположен в отдельной зоне доступности.
Подробнее о создании кластера Managed Service for Apache Kafka® с протоколом KRaft см. в инструкции.
Размещение хостов кластера
Виртуальные машины, соответствующие хостам кластера, могут размещаться:
-
На стандартных хостах Yandex Cloud.
Это физические серверы для размещения виртуальных машин кластера. Такие хосты выбираются случайным образом из пула доступных хостов, удовлетворяющих выбранной конфигурации кластера.
-
На выделенных хостах Yandex Cloud.
Это физические серверы для размещения исключительно ваших виртуальных машин. Эти виртуальные машины обеспечивают как работу кластера, так и работу других ваших сервисов, которые поддерживают выделенные хосты. Такие хосты выбираются из групп выделенных хостов, указанных при создании кластера.
Кластер из нескольких хостов-брокеров требует для своей работы не менее трех групп выделенных хостов. Это необходимо для размещения хостов ZooKeeper.
При таком варианте размещения обеспечивается физическая изоляция виртуальных машин. Кластер Managed Service for Apache Kafka®, использующий выделенные хосты, обладает всеми возможностями обычных кластеров.
Подробнее см. в разделе Выделенный хост.
Более подробная информация приведена в документации Apache Kafka®
Отказоустойчивость кластера
Чтобы обеспечить надежность хранения и бесперебойную доступность данных в кластере:
-
Кластер должен состоять минимум из трех хостов-брокеров.
-
В каждой из трех зон доступности должен присутствовать хотя бы один хост-брокер.
-
Топики кластера должны иметь следующие параметры:
- Фактор репликации —
3
. - Минимальное число синхронных реплик —
2
.
- Фактор репликации —
Подробнее см. в соглашении об уровне обслуживания (SLA)