Топики и разделы
Топики
Топик — это способ группировки потоков сообщений по категориям. Производители публикуют сообщения определенной категории в топик, а потребители подписываются на этот топик и читают из него сообщения. Для каждого топика Apache Kafka® ведет лог сообщений, который может быть разбит на несколько разделов.
Например, если производителем данных выступает интернет-магазин, вы можете создать отдельные топики для логирования действий пользователя, для хранения данных о его корзине, для записей о транзакциях и т. д.
Managed Service for Apache Kafka® управляет хранением сообщений в топике и обеспечивает:
- Репликацию разделов — при условии, что кластер состоит хотя бы из двух брокеров и для топиков задан фактор репликации больше единицы.
- Сжатие сообщений.
- Очистку лога в соответствии с политикой при устаревании сообщений в разделах или достижении заданного размера лога.
Подробнее о топиках см. в документации Apache Kafka®
Служебные топики
В процессе своей работы Managed Service for Apache Kafka® может создавать и использовать служебные топики. Записывать пользовательские данные в такие топики нельзя.
Служебный топик __schema_registry
используется для обеспечения работы Managed Schema Registry.
Служебные топики __connect-configs
, __connect-offsets
, __connect-status
используются для обеспечения работы Managed Kafka Connect.
Разделы
Раздел — это последовательность сообщений топика, которые упорядочены в порядке их поступления. Порядковый номер сообщения называют смещением. Потребители читают сообщения от начала к концу раздела, то есть первыми будут прочитаны те сообщения, которые поступили раньше. Чтобы начать читать с определенного сообщения, потребители должны передать брокеру его смещение.
Использование разделов позволяет:
- Распределять нагрузку по хранению сообщений и обработке запросов между несколькими брокерами Apache Kafka®.
- Обеспечивать отказоустойчивость: раздел может реплицироваться на указанное число брокеров.
Подробнее о разделах см. в документации Apache Kafka®
Управление топиками и разделами
Кластер Managed Service for Apache Kafka® позволяет управлять топиками и разделами двумя способами:
-
С помощью стандартных интерфейсов Yandex Cloud (консоль управления, CLI, Terraform, API). Способ подходит, если вы хотите создавать, удалять и настраивать топики и разделы, используя возможности сервиса Managed Service for Apache Kafka®.
-
С помощью Admin API Apache Kafka®
. Способ подходит, если у вас уже есть собственное решение для управления топиками и разделами. При использовании Admin API действуют ограничения:-
Для управления топиками используется пользователь-администратор с ролью
ACCESS_ROLE_ADMIN
, которая действует для всех топиков кластера. Если такого пользователя в кластере нет, создайте его. -
Права доступа пользователей для производителей и потребителей настраиваются с помощью стандартных интерфейсов Yandex Cloud, а не Admin API Apache Kafka®.
-
Оба способа можно использовать как по отдельности, так и совместно.