Partager via


Bibliothèque cliente Azure Schema Registry Apache Avro Serializer pour Java - version 1.1.10

Azure Schema Registry Apache Avro est une bibliothèque de sérialiseurs et de désérialiseurs pour le format de données Avro qui est intégré à Azure Schema Registry hébergé dans Azure Event Hubs, fournissant le stockage des schémas, le contrôle de version et la gestion. Ce package fournit un sérialiseur Avro capable de sérialiser et de désérialiser des charges utiles contenant des identificateurs de schéma du Registre de schémas et des données encodées avro. Cette bibliothèque utilise l’implémentation Apache Avro pour la sérialisation et la désérialisation Avro.

| Code sourcePackage (Maven) | Documentation de référence sur les | APIDocumentation | produitÉchantillons

Prise en main

Prérequis

Inclure le package

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-data-schemaregistry-apacheavro</artifactId>
  <version>1.1.10</version>
</dependency>

Créer des SchemaRegistryApacheAvroSerializer instance

Le SchemaRegistryApacheAvroSerializer instance est la classe main qui fournit des API pour la sérialisation et la désérialisation du format de données avro. Le schéma avro est stocké et récupéré à partir du service Registre de schémas via .SchemaRegistryAsyncClient Par conséquent, avant de créer le sérialiseur, nous devons créer le client.

Créer SchemaRegistryAsyncClient avec les informations d’identification Azure Active Directory

Pour interagir avec le service Azure Schema Registry, vous devez créer une instance de la SchemaRegistryAsyncClient classe via .SchemaRegistryClientBuilder Vous aurez besoin du point de terminaison du Registre de schémas.

Vous pouvez vous authentifier auprès d’Azure Active Directory à l’aide de la bibliothèque Azure Identity. Notez que les points de terminaison régionaux ne prennent pas en charge l’authentification AAD. Créez un sous-domaine personnalisé pour votre ressource afin d’utiliser ce type d’authentification.

Pour utiliser le fournisseur DefaultAzureCredential indiqué ci-dessous ou d’autres fournisseurs d’informations d’identification fournis avec le Kit de développement logiciel (SDK) Azure, incluez le azure-identity package :

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.10.1</version>
</dependency>

Vous devez également inscrire une nouvelle application AAD et accorder l’accès au service Registre de schémas.

TokenCredential tokenCredential = new DefaultAzureCredentialBuilder().build();

// {schema-registry-endpoint} is the fully qualified namespace of the Event Hubs instance. It is usually
// of the form "{your-namespace}.servicebus.windows.net"
SchemaRegistryAsyncClient schemaRegistryAsyncClient = new SchemaRegistryClientBuilder()
    .fullyQualifiedNamespace("{your-event-hubs-namespace}.servicebus.windows.net")
    .credential(tokenCredential)
    .buildAsyncClient();

Créer SchemaRegistryAvroSerializer via le générateur

SchemaRegistryApacheAvroSerializer serializer = new SchemaRegistryApacheAvroSerializerBuilder()
    .schemaRegistryClient(schemaRegistryAsyncClient)
    .schemaGroup("{schema-group}")
    .buildSerializer();

Concepts clés

Cette bibliothèque fournit un sérialiseur, SchemaRegistryApacheAvroSerializer. utilise SchemaRegistryAvroSerializer un SchemaRegistryAsyncClient pour construire des messages à l’aide d’un format filaire contenant des informations de schéma telles qu’un ID de schéma.

Ce sérialiseur nécessite la bibliothèque Apache Avro. Les types de charge utile acceptés par ce sérialiseur incluent GenericRecord et SpecificRecord.

Exemples

Sérialisation

Sérialisez un objet fortement typé dans une charge utile avro compatible avec Schema Registry.

PlayingCard playingCard = new PlayingCard();
playingCard.setPlayingCardSuit(PlayingCardSuit.SPADES);
playingCard.setIsFaceCard(false);
playingCard.setCardValue(5);

MessageContent message = serializer.serialize(playingCard,
    TypeReference.createInstance(MessageContent.class));

Le type PlayingCard avro est disponible dans le package com.azure.data.schemaregistry.avro.generatedtestsourcesd’exemples .

Désérialiser

Désérialisez une charge utile avro compatible avec le Registre de schémas en un objet fortement de type.

SchemaRegistryApacheAvroSerializer serializer = createAvroSchemaRegistrySerializer();
MessageContent message = getSchemaRegistryAvroMessage();
PlayingCard playingCard = serializer.deserialize(message, TypeReference.createInstance(PlayingCard.class));

Dépannage

Activation de la journalisation

Les sdk Azure pour Java offrent une histoire de journalisation cohérente pour vous aider à résoudre les erreurs d’application et à accélérer leur résolution. Les journaux produits capturent le flux d’une application avant d’atteindre l’état terminal pour faciliter la localisation du problème racine. Consultez le wiki de journalisation pour obtenir des conseils sur l’activation de la journalisation.

Étapes suivantes

Vous trouverez d’autres exemples ici.

Contribution

Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) spécifiant que vous avez le droit de nous accorder les droits d’utiliser votre contribution, et que vous nous les accordez.

Quand vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez simplement les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les dépôts utilisant notre contrat CLA.

Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.

Impressions