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
- Um Java Development Kit (JDK) versão 8 ou posterior.
- Assinatura do Azure
- Um namespace dos Hubs de Eventos
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.generatedtestsources
de 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.