Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Schema Registry — centrální správa schémat pro streaming

01. 01. 2024 1 min čtení intermediate

Schema Registry centralizuje a verzuje schémata messaging systémů. Kompatibilitní kontroly zajišťují bezpečnou evoluci bez breaking changes.

Schema Registry v Kafka

Centralizuje a verzuje schémata, vynucuje kompatibilitu.

Avro schéma

{
  "type": "record",
  "name": "Order",
  "namespace": "cz.core.events",
  "fields": [
    {"name": "order_id", "type": "string"},
    {"name": "total_czk", "type": {"type": "bytes", "logicalType": "decimal", "precision": 12, "scale": 2}},
    {"name": "status", "type": {"type": "enum", "name": "Status", "symbols": ["PENDING", "CONFIRMED", "SHIPPED"]}},
    {"name": "notes", "type": ["null", "string"], "default": null}
  ]
}

Kompatibilitní režimy

  • BACKWARD — nový consumer, starý producent
  • FORWARD — starý consumer, nový producent
  • FULL — obě (nejbezpečnější)
from confluent_kafka.schema_registry import SchemaRegistryClient
from confluent_kafka.schema_registry.avro import AvroSerializer

registry = SchemaRegistryClient({'url': 'http://registry:8081'})
serializer = AvroSerializer(registry, schema_str)
producer.produce('orders', value=serializer(order, ctx))

Shrnutí

Schema Registry je nezbytná pro produkční Kafka. Verzování a kompatibilitní kontroly brání runtime chybám.

schema registryavrokafkaserialization