Biblioteca cliente de Apache Avro Serializer del Registro de esquemas de Azure para Java, versión 1.1.10

Azure Schema Registry Apache Avro es una biblioteca de serializadores y deserializadores para el formato de datos avro que se integra con Azure Schema Registry hospedado en Azure Event Hubs, lo que proporciona almacenamiento de esquemas, control de versiones y administración. Este paquete proporciona un serializador Avro capaz de serializar y deserializar cargas que contienen identificadores de esquema del Registro de esquema y datos codificados en Avro. Esta biblioteca usa la implementación de Apache Avro para la serialización y deserialización de Avro.

Código | fuentePaquete (Maven) | Documentación | de referencia de APIDocumentación del | productoMuestras

Introducción

Requisitos previos

Inclusión del paquete

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

Creación de SchemaRegistryApacheAvroSerializer una instancia

La SchemaRegistryApacheAvroSerializer instancia es la clase principal que proporciona LAS API para serializar y deserializar el formato de datos avro. El esquema avro se almacena y recupera del servicio Registro de esquemas a través de SchemaRegistryAsyncClient. Por lo tanto, antes de crear el serializador, debemos crear el cliente.

Creación SchemaRegistryAsyncClient con credenciales de Azure Active Directory

Para interactuar con el servicio Registro de esquemas de Azure, deberá crear una instancia de la SchemaRegistryAsyncClient clase a través de SchemaRegistryClientBuilder. Necesitará el punto de conexión del Registro de esquemas.

Puede autenticarse con Azure Active Directory mediante la biblioteca de identidades de Azure. Tenga en cuenta que los puntos de conexión regionales no admiten la autenticación de AAD. Cree un subdominio personalizado para el recurso con el fin de usar este tipo de autenticación.

Para usar el proveedor DefaultAzureCredential que se muestra a continuación u otros proveedores de credenciales proporcionados con el SDK de Azure, incluya el azure-identity paquete:

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

También deberá registrar una nueva aplicación de AAD y conceder acceso al servicio Registro de esquemas.

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

Creación SchemaRegistryAvroSerializer mediante el generador

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

Conceptos clave

Esta biblioteca proporciona un serializador, SchemaRegistryApacheAvroSerializer. SchemaRegistryAvroSerializer utiliza un SchemaRegistryAsyncClient objeto para construir mensajes mediante un formato de conexión que contiene información de esquema, como un identificador de esquema.

Este serializador requiere la biblioteca de Apache Avro. Los tipos de carga aceptados por este serializador incluyen GenericRecord y SpecificRecord.

Ejemplos

Serializar

Serialice un objeto fuertemente tipado en la carga avro compatible con el Registro de esquemas.

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

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

El tipo PlayingCard avro está disponible en el paquete com.azure.data.schemaregistry.avro.generatedtestsourcesde ejemplos .

Deserializar

Deserializar una carga avro compatible con el Registro de esquemas en un objeto fuertemente tipado.

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

Solución de problemas

Habilitar el registro

Los SDK de Azure para Java ofrecen una historia de registro coherente para ayudar a solucionar errores de aplicación y acelerar su resolución. Los registros generados capturarán el flujo de una aplicación antes de alcanzar el estado terminal para ayudar a encontrar el problema raíz. Consulte la wiki de registro para obtener instrucciones sobre cómo habilitar el registro.

Pasos siguientes

Puede encontrar más ejemplos aquí.

Contribuciones

Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución.

Cuando se envía una solicitud de incorporación de cambios, un bot de CLA determinará de forma automática si tiene que aportar un CLA y completar la PR adecuadamente (por ejemplo, la etiqueta, el comentario). Solo siga las instrucciones que le dará el bot. Solo será necesario que lo haga una vez en todos los repositorios con nuestro CLA.

Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.

Impresiones