Какая польза от __consumer_offsets и _schema тем в Кафке?

После настройки кластера Kafka Broker и создания нескольких тем мы обнаружили, что Kafka автоматически создает следующие две темы:

  1. __consumer_offsets
  2. _schema

Какова важность и использование этих тем?

Ответ 1

__consumer_offsets используется для хранения информации о принятых смещениях для каждой темы: раздел на группу потребителей (groupID). Это сжатая тема, поэтому данные будут периодически сжиматься, и будет доступна только самая последняя информация о смещениях.

_schema - не тема кафки по умолчанию (по крайней мере, в кафке 8,9). Добавлен Confluent. Смотрите больше: Реестр схемы слияния - github.com/confluentinc/schema-registry (спасибо @serejja)

Ответ 2

__consumer_offsets: Каждая группа потребителей поддерживает свое смещение для разделов по темам. Начиная с v0.9 информация о v0.9 смещениях для каждой группы потребителей хранится в этой внутренней теме (до версии v0.9 эта информация хранилась в Zookeeper). Когда менеджер смещения получает OffsetCommitRequest, он добавляет запрос к специальной сжатой теме Kafka с именем __consumer_offsets. Наконец, диспетчер смещений отправит получателю успешный ответ о фиксации смещения, только когда все реплики темы смещений получат смещения.

_schemas: это внутренняя тема, используемая реестром схем, который является распределенным хранилищем для схем Avro. Вся информация, относящаяся к схеме, теме (с соответствующей версией), метаданным и конфигурации совместимости, прилагается к этой теме. Реестр схемы, в свою очередь, создает (например, когда новая схема регистрируется под темой) и использует данные из этой темы.