Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste guia de início rápido, exploramos como validar o evento de aplicativos Apache Kafka usando o Registro de Esquema do Azure para Hubs de Eventos.
Nesse caso de uso, um aplicativo de produtor do Kafka usa o esquema Avro armazenado no Registro de Esquema do Azure para serializar o evento e publicá-lo em um tópico/hub de eventos Kafka no Hubs de Eventos do Azure. O consumidor Kafka desserializa os eventos que consome dos Hubs de Eventos. Para isso, ele usa a ID do esquema do evento e o esquema do Avro, que é armazenado no Registro de Esquema do Azure.
Pré-requisitos
Se você não estiver familiarizado com os Hubs de Eventos do Azure, confira a visão geral dos Hubs de Eventos antes de fazer este início rápido.
Para concluir este início rápido, você precisará dos seguintes pré-requisitos:
- Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
- Em seu ambiente de desenvolvimento, instale os seguintes componentes:
- JDK (Java Development Kit) 1.7+.
- Baixe e instale um arquivo binário do Maven.
- Git
- Clone o repositório do Registro de Esquema do Azure para Kafka.
Criar um hub de eventos
Siga as instruções do Início Rápido: Crie um namespace do Event Hubs e um hub de eventos para criar um namespace do Event Hubs e um hub de eventos. Depois, siga as instruções em Obter a cadeia de conexão para obter uma cadeia de conexão para seu namespace dos Hubs de Eventos.
Anote as seguintes configurações que você usa no início rápido atual:
- Cadeia de conexão para o namespace do Event Hubs
- Nome do hub de eventos
Criar um esquema
Siga as instruções de Criar esquemas usando o Registro de Esquema para criar um grupo de esquemas e um esquema.
Crie um grupo de esquemas chamado contoso-sg usando o portal do Registro de Esquema. Use o Avro como o tipo de serialização e Nenhum para o modo de compatibilidade.
Nesse grupo de esquemas, crie um novo esquema do Avro com o nome do esquema:
Microsoft.Azure.Data.SchemaRegistry.example.Orderusando o seguinte conteúdo de esquema.{ "namespace": "Microsoft.Azure.Data.SchemaRegistry.example", "type": "record", "name": "Order", "fields": [ { "name": "id", "type": "string" }, { "name": "amount", "type": "double" }, { "name": "description", "type": "string" } ] }
Registrar um aplicativo para acessar o registro de esquema
Use o Microsoft Entra ID para autorizar seu aplicativo de produtor e consumidor do Kafka a acessar recursos do Registro de Esquema do Azure, registrando seu aplicativo cliente com um locatário Microsoft Entra do portal do Azure.
Para registrar um aplicativo do Microsoft Entra chamado example-app, confira Registrar seu aplicativo com um locatário do Microsoft Entra.
- tenant.id – define a ID do locatário do aplicativo
- client.id – define a ID do cliente do aplicativo
- client.secret – define o segredo do cliente para autenticação
E se você estiver usando a identidade gerenciada, precisará:
- use.managed.identity.credential - indica que as credenciais MSI devem ser usadas, devem ser usadas para VM habilitada para MSI
- managed.identity.clientId - se especificado, ele cria a credencial MSI com determinada ID do cliente
- managed.identity.resourceId - se especificado, ele cria a credencial MSI com determinada ID de recurso
Adicionar usuário à função Leitor do Registro de Esquema
Adicione sua conta de usuário à função Leitor do Registro de Esquema no nível do namespace. Você também pode usar a função Colaborador do Registro de Esquema , mas isso não é necessário para este início rápido.
- Na página de namespace dos Hubs de Eventos , selecione Controle de acesso (IAM) no menu à esquerda.
- Na página controle de acesso (IAM ), selecione + Adicionar ->Adicionar atribuição de função no menu.
- Na página Tipo de atribuição , selecione Avançar.
- Na página Funções , selecione Leitor do Registro de Esquema (Versão Prévia) e selecione Avançar na parte inferior da página.
- Use o link + Selecionar membros para adicionar o
example-appaplicativo que você criou na etapa anterior à função e selecione Avançar. - Na página Examinar + atribuir, selecione Examinar + atribuir.
Atualizar a configuração do aplicativo cliente de aplicativos Kafka
Atualize a configuração do cliente dos aplicativos produtor e consumidor do Kafka com a configuração relacionada ao aplicativo do Microsoft Entra que criamos e com as informações do registro de esquema.
Para atualizar a configuração do Produtor do Kafka, navegue até azure-schema-registry-for-kafka/tree/master/java/avro/samples/kafka-producer.
Atualize a configuração do aplicativo Kafka em src/main/resources/app.propertiesseguindo o guia de Início Rápido do Kafka para Hubs de Eventos.
Atualize os detalhes de configuração do produtor em src/main/resources/app.properties usando a configuração relacionada ao registro de esquema e o aplicativo Microsoft Entra que você criou acima da seguinte maneira:
schema.group=contoso-sg schema.registry.url=https://<NAMESPACENAME>.servicebus.windows.net tenant.id=<> client.id=<> client.secret=<>Siga as mesmas instruções e atualize a configuração do azure-schema-registry-for-kafka/tree/master/java/avro/samples/kafka-consumer.
Para os aplicativos de produtor e consumidor do Kafka, usa-se o seguinte esquema Avro:
{ "namespace": "com.azure.schemaregistry.samples", "type": "record", "name": "Order", "fields": [ { "name": "id", "type": "string" }, { "name": "amount", "type": "double" }, { "name": "description", "type": "string" } ] }
Usando o produtor Kafka com validação de esquema Avro
Para executar o aplicativo Kafka Producer, navegue até azure-schema-registry-for-kafka/tree/master/java/avro/samples/kafka-producer.
Você pode executar o aplicativo produtor para que ele possa produzir registros específicos do Avro ou registros genéricos. Para o modo de registros específico, você precisará primeiro gerar as classes no esquema produtor usando o seguinte comando do maven:
mvn generate-sourcesEm seguida, você pode executar o aplicativo produtor usando os comandos a seguir.
mvn clean package mvn -e clean compile exec:java -Dexec.mainClass="com.azure.schemaregistry.samples.producer.App"Após a execução bem-sucedida do aplicativo de produção, ele solicita que você escolha o cenário de produção. Para este início rápido, você pode escolher a opção 1 – produzir Avro SpecificRecords.
Enter case number: 1 - produce Avro SpecificRecords 2 - produce Avro GenericRecordsApós a serialização e publicação de dados bem-sucedidas, você deverá ver os seguintes logs de console em seu aplicativo produtor:
INFO com.azure.schemaregistry.samples.producer.KafkaAvroSpecificRecord - Sent Order {"id": "ID-0", "amount": 10.0, "description": "Sample order 0"} INFO com.azure.schemaregistry.samples.producer.KafkaAvroSpecificRecord - Sent Order {"id": "ID-1", "amount": 11.0, "description": "Sample order 1"} INFO com.azure.schemaregistry.samples.producer.KafkaAvroSpecificRecord - Sent Order {"id": "ID-2", "amount": 12.0, "description": "Sample order 2"}
Usar o consumidor Kafka com validação de esquema Avro
Para executar o aplicativo de consumidor Kafka, navegue até azure-schema-registry-for-kafka/tree/master/java/avro/samples/kafka-consumer.
Você pode executar o aplicativo de consumidor para que ele possa consumir registros específicos do Avro ou registros genéricos. Para o modo de registros específico, você precisará primeiro gerar as classes no esquema produtor usando o seguinte comando do maven:
mvn generate-sourcesEm seguida, você pode executar o aplicativo do consumidor usando o comando a seguir.
mvn clean package mvn -e clean compile exec:java -Dexec.mainClass="com.azure.schemaregistry.samples.consumer.App"Após a execução bem-sucedida do aplicativo de consumidor, ele solicitará que você escolha o cenário de produtor. Para este início rápido, você pode escolher a opção 1 – consumir Avro SpecificRecords.
Enter case number: 1 - consume Avro SpecificRecords 2 - consume Avro GenericRecordsApós consumir e desserializar os dados com sucesso, você deverá ver os seguintes registros no console do seu aplicativo produtor:
INFO com.azure.schemaregistry.samples.consumer.KafkaAvroSpecificRecord - Order received: {"id": "ID-0", "amount": 10.0, "description": "Sample order 0"} INFO com.azure.schemaregistry.samples.consumer.KafkaAvroSpecificRecord - Order received: {"id": "ID-1", "amount": 11.0, "description": "Sample order 1"} INFO com.azure.schemaregistry.samples.consumer.KafkaAvroSpecificRecord - Order received: {"id": "ID-2", "amount": 12.0, "description": "Sample order 2"}
Limpar os recursos
Exclua o namespace dos Hubs de Eventos ou exclua o grupo de recursos que contém o namespace.