Biblioteca de clientes do Apache Avro Serializer do Registro de Esquema do Azure para Java – versão 1.1.10

O Apache Avro do Registro de Esquema do Azure é uma biblioteca de serializadores e desserializadores para o formato de dados Avro integrada ao Registro de Esquema do Azure hospedado em Hubs de Eventos do Azure, fornecendo armazenamento de esquema, controle de versão e gerenciamento. Esse pacote fornece um serializador Avro capaz de serializar e desserializar cargas que contêm identificadores de esquema do Registro de Esquema e dados codificados em Avro. Essa biblioteca usa a implementação do Apache Avro para serialização e desserialização do Avro.

Código-fonte | Pacote (Maven) | Documentação | de referência da APIDocumentação do | produtoAmostras

Introdução

Pré-requisitos

Incluir o Pacote

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

Criar SchemaRegistryApacheAvroSerializer instância

A SchemaRegistryApacheAvroSerializer instância é a classe main que fornece APIs para serializar e desserializar o formato de dados avro. O esquema avro é armazenado e recuperado do serviço de Registro de Esquema por meio do SchemaRegistryAsyncClient. Portanto, antes de criarmos o serializador, devemos criar o cliente.

Criar SchemaRegistryAsyncClient com a Credencial do Azure Active Directory

Para interagir com o serviço do Registro de Esquema do Azure, você precisará criar uma instância da SchemaRegistryAsyncClient classe por meio do SchemaRegistryClientBuilder. Você precisará do ponto de extremidade do Registro de Esquema.

Você pode autenticar com o Azure Active Directory usando a biblioteca de identidade do Azure. Observe que os pontos de extremidade regionais não dão suporte à autenticação do AAD. Crie um subdomínio personalizado para o recurso para usar esse tipo de autenticação.

Para usar o provedor DefaultAzureCredential mostrado abaixo ou outros provedores de credenciais fornecidos com o SDK do Azure, inclua o azure-identity pacote:

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

Você também precisará registrar um novo aplicativo do AAD e conceder acesso ao serviço de Registro de Esquema.

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

Criar SchemaRegistryAvroSerializer por meio do construtor

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

Principais conceitos

Essa biblioteca fornece um serializador, SchemaRegistryApacheAvroSerializer. O SchemaRegistryAvroSerializer utiliza um SchemaRegistryAsyncClient para construir mensagens usando um formato de transmissão que contém informações de esquema, como uma ID de esquema.

Esse serializador requer a biblioteca do Apache Avro. Os tipos de conteúdo aceitos por esse serializador incluem GenericRecord e SpecificRecord.

Exemplos

Serializar

Serialize um objeto fortemente tipado no conteúdo avro compatível com o Registro de Esquema.

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

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

O tipo PlayingCard avro está disponível no pacote com.azure.data.schemaregistry.avro.generatedtestsourcesde exemplos .

Desserializar

Desserialize uma carga avro compatível com o Registro de Esquema em um objeto fortemente tipado.

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

Solução de problemas

Habilitando o registro em log

Os SDKs do Azure para Java oferecem uma história de log consistente para ajudar a solucionar problemas de erros do aplicativo e agilizar a resolução. Os logs produzidos capturam o fluxo de um aplicativo antes que acessem o estado do terminal para ajudar a localizar o problema raiz. Exiba o wiki de log para obter diretrizes sobre como habilitar o registro em log.

Próximas etapas

Mais exemplos podem ser encontrados aqui.

Contribuição

Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder e de fato concede, os direitos de usar sua contribuição.

Quando você envia uma solicitação de pull, um bot do CLA determina automaticamente se você precisa fornecer um CLA e preencher a PR corretamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.

Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.

Impressões