Что такое Kafka Schema Registry?
При работе с Apache Kafka одна из основных проблем — это формат сообщений. Представьте: продюсер пишет события в одном формате, а консьюмер ждёт другой. Результат — ошибки и падения. Решением становится Kafka Schema Registry.
Schema Registry — это отдельный сервис, который хранит и управляет схемами (чаще всего Avro, но также JSON Schema или Protobuf). Продюсер регистрирует схему один раз, а консьюмеры при чтении сообщений получают её по идентификатору.
Зачем он нужен?
- Консистентность: все участники системы понимают структуру данных одинаково.
- Эволюция: можно добавлять новые поля или изменять схему без поломки старых консьюмеров.
- Эффективность: вместо передачи полной схемы в каждом сообщении передаётся только ID.
Пример
Есть система e-commerce:
- Продюсер пишет события заказа:
order_id
,customer_id
,total
. - Потом добавляется новое поле
discount
.
С Schema Registry старые консьюмеры продолжают работать (игнорируя новое поле), а новые используют обновлённую схему.
Основные возможности
- Централизованное управление схемами.
- Проверка совместимости при изменениях.
- REST API для регистрации и получения схем.
- Интеграция с Kafka-клиентами, Connect и ksqlDB.
Для DevOps инженера Schema Registry — это инструмент, который упрощает поддержку больших дата-пайплайнов, снижает риски несовместимости и позволяет безопасно развивать систему.