Schemaregister in Azure Event Hubs

Schema Registry in Azure Event Hubs biedt u een opslagplaats voor het gebruik en beheer van schema's in schemagestuurde scenario's voor gebeurtenisstreaming.

Schemaregisteronderdelen

Een Event Hubs-naamruimte kan schemagroepen hosten naast Event Hubs (of Kafka-onderwerpen). De naamruimte werkt als host voor een schemaregister en kan meerdere schemagroepen bevatten. Ondanks het feit dat het schemaregister wordt gehost in Azure Event Hubs, kan het universeel worden gebruikt met alle Azure-berichtenservices en alle andere berichten- of gebeurtenissenbrokers. Elk van deze schemagroepen is een afzonderlijk beveiligbare opslagplaats voor een reeks schema's. Groepen kunnen worden afgestemd op een bepaalde app of een organisatie-eenheid.

Diagram that shows the components of Schema Registry in Azure Event Hubs.

Schemagroepen

Een schemagroep is een logische groep van gelijksoortige schema's op basis van uw bedrijfscriteria. Een schemagroep kan meerdere versies van een schema bevatten. U kunt er met de instelling voor het afdwingen van compatibiliteit voor een schemagroep voor zorgen dat nieuwere schemaversies achterwaarts compatibel zijn.

De beveiligingsgrens die wordt opgelegd door het groeperingsmechanisme zorgt ervoor dat handelsgeheimen niet per ongeluk via metagegevens worden gelekt in situaties waarbij de naamruimte wordt gedeeld met meerdere partners. Ook kunnen eigenaren van apps op deze manier schema's beheren, onafhankelijk van andere apps die dezelfde naamruimte delen.

Schema's

Schema's definiëren het contract tussen producenten en consumenten. Met een schema dat is gedefinieerd in een Event Hubs-schemaregister kan het contract worden beheerd buiten gebeurtenisgegevens, waardoor de overhead van de nettolading teniet wordt gedaan. Een schema heeft een naam, type (bijvoorbeeld record, matrix enzovoort), compatibiliteitsmodus (geen, voorwaarts, achterwaarts, volledig) en serialisatietype (momenteel alleen Avro). U kunt meerdere versies van een schema maken en een specifieke versie van een schema ophalen en gebruiken.

Schema-indelingen

Schema-indelingen worden gebruikt om de manier te bepalen waarop een schema is gestructureerd en gedefinieerd, waarbij elke indeling specifieke richtlijnen en syntaxis bevat voor het definiëren van de structuur van de gebeurtenissen die worden gebruikt voor gebeurtenisstreaming.

Avro-schema

Avro is een populair systeem voor gegevensserialisatie dat gebruikmaakt van een compacte binaire indeling en die mogelijkheden biedt voor de ontwikkeling van schema's.

Zie voor meer informatie over het gebruik van avro-schema-indeling met Event Hubs Schema Registry:

JSON-schema (preview)

JSON-schema is een gestandaardiseerde manier om de structuur en gegevenstypen van de gebeurtenissen te definiëren. JSON-schema maakt het vertrouwen en betrouwbare gebruik van de JSON-gegevensindeling in gebeurtenisstreaming mogelijk.

Zie voor meer informatie over het gebruik van JSON-schema-indeling met Event Hubs Schema Registry:

Ontwikkeling van schema's

Schema's moeten zich ontwikkelen met de bedrijfsvereiste van producenten en consumenten. Azure Schema Registry ondersteunt de ontwikkeling van schema's door compatibiliteitsmodi op schemagroepniveau te introduceren. Wanneer u een schemagroep maakt, kunt u de compatibiliteitsmodus opgeven van de schema's die u in die schemagroep opneemt. Wanneer u een schema bijwerkt, moet de wijziging voldoen aan de toegewezen compatibiliteitsmodus en wordt alleen een nieuwe versie van het schema gemaakt.

Notitie

Schemaontwikkeling wordt alleen ondersteund voor avro-schema-indeling.

Azure Schema Registry voor Event Hubs biedt ondersteuning voor de volgende compatibiliteitsmodi.

Compatibiliteit met eerdere versies

Met de compatibiliteitsmodus voor eerdere versies kan de consumentencode een nieuwe versie van het schema gebruiken, maar kan berichten met een oude versie van het schema worden verwerkt. Wanneer u de achterwaartse compatibiliteitsmodus in een schemagroep gebruikt, kunnen de volgende wijzigingen in een schema worden aangebracht.

  • Velden verwijderen.
  • Voeg optionele velden toe.

Compatibiliteit doorsturen

Compatibiliteit doorsturen stelt de consumentencode in staat om een oude versie van het schema te gebruiken, maar kan berichten lezen met het nieuwe schema. Met de compatibiliteitsmodus voor doorsturen kunnen de volgende wijzigingen worden aangebracht in een schema.

  • Velden toevoegen
  • Optionele velden verwijderen

Geen compatibiliteit

Wanneer de None compatibiliteitsmodus wordt gebruikt, voert het schemaregister geen compatibiliteitscontroles uit wanneer u schema's bijwerkt.

Client-SDK 's

U kunt een van de volgende bibliotheken gebruiken om een Avro-serializer op te nemen, die u kunt gebruiken om nettoladingen met schemaregisterschema-id's en avro-gecodeerde gegevens te serialiseren en deserialiseren.

Limieten

Zie Event Hubs-quota en -limieten voor limieten (bijvoorbeeld: aantal schemagroepen in een naamruimte) van Event Hubs.

Op rollen gebaseerd toegangsbeheer van Azure

Volg deze stappen om programmatisch toegang te krijgen tot een schemaregister:

  1. Uw toepassing registreren in Microsoft Entra-id
  2. Voeg de beveiligingsprincipaal van de toepassing toe aan een van de volgende Azure RBAC-rollen (op rollen gebaseerd toegangsbeheer) op naamruimteniveau.
- Rol Beschrijving
Eigenaar Schemaregistergroepen en schema's lezen, schrijven en verwijderen.
Inzender Schemaregistergroepen en schema's lezen, schrijven en verwijderen.
Schemaregisterlezer Schemaregistergroepen en schema's lezen en weergeven.
Inzender schemaregister Schemaregistergroepen en schema's lezen, schrijven en verwijderen.

Zie Een app registreren bij Microsoft Entra ID voor instructies voor het registreren van een toepassing met behulp van Azure Portal. Noteer de client-id (app-id), tenant-id en het geheim die in de code moeten worden gebruikt.

Volgende stappen