Share via


Azure Schema Registry Apache Avro Serializer-Clientbibliothek für Java – Version 1.1.10

Azure Schema Registry Apache Avro ist eine Serialisierungs- und Deserialisierungsbibliothek für das Avro-Datenformat, die in Azure Schema Registry integriert ist, die in Azure Event Hubs gehostet wird und Schemaspeicher, Versionsverwaltung und -verwaltung bereitstellt. Dieses Paket stellt einen Avro-Serialisierer bereit, der Nutzlasten serialisieren und deserialisieren kann, die Schemaregistrierungsschemabezeichner und Avro-codierte Daten enthalten. Diese Bibliothek verwendet die Apache Avro-Implementierung für die Avro-Serialisierung und Deserialisierung.

Quellcode | Paket (Maven) | API-Referenzdokumentation | Produktdokumentation | Proben

Erste Schritte

Voraussetzungen

Schließen Sie das Paket ein

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

Erstellen von SchemaRegistryApacheAvroSerializer instance

Die SchemaRegistryApacheAvroSerializer instance ist die Standard-Klasse, die APIs zum Serialisieren und Deserialisieren des avro-Datenformats bereitstellt. Das avro-Schema wird gespeichert und vom Schemaregistrierungsdienst über SchemaRegistryAsyncClientabgerufen. Bevor wir also den Serialisierer erstellen, sollten wir den Client erstellen.

Erstellen SchemaRegistryAsyncClient mit Azure Active Directory-Anmeldeinformationen

Um mit dem Azure Schema Registry-Dienst zu interagieren, müssen Sie eine instance der SchemaRegistryAsyncClient -Klasse über erstellenSchemaRegistryClientBuilder. Sie benötigen den Schemaregistrierungsendpunkt.

Sie können sich mit Azure Active Directory mithilfe der Azure Identity-Bibliothek authentifizieren. Beachten Sie, dass regionale Endpunkte die AAD-Authentifizierung nicht unterstützen. Erstellen Sie eine benutzerdefinierte Unterdomäne für Ihre Ressource, um diesen Authentifizierungstyp zu verwenden.

Um den unten gezeigten Anbieter DefaultAzureCredential oder andere Anbieter von Anmeldeinformationen zu verwenden, die mit dem Azure SDK bereitgestellt werden, fügen Sie das azure-identity Paket ein:

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

Außerdem müssen Sie eine neue AAD-Anwendung registrieren und Zugriff auf den Schemaregistrierungsdienst gewähren.

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();

Erstellen SchemaRegistryAvroSerializer über den Generator

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

Wichtige Begriffe

Diese Bibliothek stellt einen Serialisierer bereit, SchemaRegistryApacheAvroSerializer. Verwendet SchemaRegistryAvroSerializer ein SchemaRegistryAsyncClient , um Nachrichten mithilfe eines Drahtformats zu erstellen, das Schemainformationen wie z. B. eine Schema-ID enthält.

Für dieses Serialisierungsprogramm ist die Apache Avro-Bibliothek erforderlich. Zu den Nutzlasttypen, die von diesem Serialisierungsprogramm akzeptiert werden, gehören GenericRecord und SpecificRecord.

Beispiele

Serialisieren

Serialisieren Sie ein stark typisiertes Objekt in die mit der Schemaregistrierung kompatible avro-Nutzlast.

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

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

Der avro-Typ PlayingCard ist im Beispielpaket com.azure.data.schemaregistry.avro.generatedtestsourcesverfügbar.

XAML

Deserialisieren Sie eine mit der Schemaregistrierung kompatible avro-Nutzlast in ein Objekt mit starkem Typ.

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

Problembehandlung

Aktivieren der Protokollierung

Azure SDKs für Java bieten eine konsistente Protokollierung, die bei der Problembehandlung von Anwendungsfehlern und deren Lösung hilft. Die erstellten Protokolle erfassen den Flow einer Anwendung, bevor sie den Endzustand erreichen. Dies trägt zur Ermittlung der Grundursache bei. Informationen zum Aktivieren der Protokollierung finden Sie im Protokollierungswiki.

Nächste Schritte

Weitere Beispiele finden Sie hier.

Mitwirken

Beiträge und Vorschläge für dieses Projekt sind willkommen. Für die meisten Beiträge ist die Zustimmung zu einer Lizenzvereinbarung für Mitwirkende (Contributor License Agreement, CLA) erforderlich, in der Sie erklären, dass Sie dazu berechtigt sind, uns die Rechte für die Nutzung Ihres Beitrags zu erteilen, und dies auch tun.

Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.

Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.

Aufrufe