Přeskočit na obsah
Data Governance

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

9 min čtení
Schema RegistryAvroKafkaSerialization

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.

CORE SYSTEMS tým

Enterprise architekti a AI inženýři. Stavíme systémy, které fungují.