Режим хостов определяет, какие роли выполняют хосты кластера и как между ними распределяются задачи обработки сообщений и управления метаданными.
В кластере Managed Kafka каждый хост выполняет одну или несколько ролей, которые определяют его функции в кластере:
Брокер Broker — хост, который принимает и хранит сообщения от производителей и передает их потребителям. Брокеры обрабатывают все операции чтения и записи по топикам и разделам.
Контроллер Controller — хост, который управляет метаданными кластера: следит за составом брокеров, хранит конфигурацию топиков и разделов, координирует выборы лидеров разделов. В каждый момент времени один из контроллеров является активным (лидером), остальные находятся в режиме горячего резерва.
Контроллеры работают на основе протокола KRaft и образуют кворум. При использовании трех контроллеров кластер сохраняет работоспособность при отказе одного из них. При отказе двух контроллеров из трех изменения метаданных становятся недоступными, однако существующие топики продолжают обслуживаться — брокеры работают на основе кешированных метаданных.
При потере кворума контроллеров создание новых топиков и изменение конфигурации кластера недоступны. Чтение и запись сообщений по существующим топикам продолжаются.
Роль хостов и их статус можно посмотреть на вкладке Хосты на странице кластера.
Managed Kafka поддерживает два режима хостов: комбинированный и выделенный.
В комбинированном режиме каждый хост одновременно выполняет роли брокера и контроллера Broker, Controller. Все хосты участвуют как в обработке сообщений, так и в управлении метаданными кластера.
Доступные конфигурации:
1 или 3 хоста для Single-AZ;
3 хоста для Multi-AZ.
Ограничения комбинированного режима:
Невозможно масштабировать брокеры и контроллеры независимо друг от друга.
Невозможно задать разные вычислительные ресурсы для брокеров и контроллеров.
Нагрузка на обработку сообщений и управление метаданными делится между одними и теми же хостами.
Комбинированный режим подходит для сред разработки и тестирования. Для production-сред рекомендуется использовать выделенный режим.
В выделенном режиме роли брокера и контроллера разделены между разными хостами. Брокеры обрабатывают сообщения, контроллеры управляют метаданными. Такое разделение позволяет настраивать, масштабировать и обслуживать каждую группу хостов независимо.
Конфигурация хостов в выделенном режиме:
Брокеры — минимум 3 хоста, по одному на каждую зону доступности. Количество брокеров на зону можно изменять от одного до пяти.
Контроллеры — всегда 3 хоста, по одному на каждую зону доступности. Количество контроллеров изменить нельзя.
Выделенный режим доступен только с отказоустойчивостью Multi-AZ и рекомендован для production-сред.