Guia de início rápido: transmitir dados com os Hubs de Eventos do Azure e o Apache Kafka
Este guia de início rápido mostra como transmitir dados de e para os Hubs de Eventos do Azure usando o protocolo Apache Kafka. Você não alterará nenhum código nos aplicativos de produtor ou consumidor Kafka de exemplo. Basta atualizar as configurações que os clientes usam para apontar para um namespace de Hubs de Eventos, que expõe um ponto de extremidade Kafka. Você também não constrói e usa um cluster Kafka por conta própria. Em vez disso, você usa o namespace Hubs de Eventos com o ponto de extremidade Kafka.
Nota
Este exemplo está disponível no GitHub
Pré-requisitos
Para concluir este início rápido, certifique-se de que tem os seguintes pré-requisitos:
- Leia o artigo Hubs de Eventos para o Apache Kafka.
- Uma subscrição do Azure. Se não tiver uma, crie uma conta gratuita antes de começar.
- Crie uma máquina virtual do Windows e instale os seguintes componentes:
- Java Development Kit (JDK) 1.7+.
- Transferir e instalar um arquivo binário Maven.
- Git
Criar um namespace de Hubs de Eventos do Azure
Quando você cria um namespace de Hubs de Eventos, o ponto de extremidade Kafka para o namespace é habilitado automaticamente. Você pode transmitir eventos de seus aplicativos que usam o protocolo Kafka para hubs de eventos. Siga as instruções passo a passo em Criar um hub de eventos usando o portal do Azure para criar um namespace de Hubs de Eventos. Se você estiver usando um cluster dedicado, consulte Criar um namespace e um hub de eventos em um cluster dedicado.
Nota
Os Hubs de Eventos para Kafka não são suportados na camada básica .
Enviar e receber mensagens com Kafka em Hubs de Eventos
Habilite uma identidade gerenciada atribuída ao sistema para a máquina virtual. Para obter mais informações sobre como configurar a identidade gerenciada em uma VM, consulte Configurar identidades gerenciadas para recursos do Azure em uma VM usando o portal do Azure. As identidades geridas para os recursos do Azure proporcionam aos recursos do Azure uma identidade gerida automaticamente no Microsoft Entra ID. Pode utilizar esta identidade para se autenticar em qualquer serviço que suporte a autenticação do Microsoft Entra sem ter credenciais no código.
Usando a página Controle de acesso do namespace Hubs de Eventos que você criou, atribua a função Proprietário de Dados dos Hubs de Eventos do Azure à identidade gerenciada da VM. Os Hubs de Eventos do Azure dão suporte ao uso da ID do Microsoft Entra para autorizar solicitações a recursos de Hubs de Eventos. Com o Microsoft Entra ID, você pode usar o controle de acesso baseado em função do Azure (Azure RBAC) para conceder permissões a uma entidade de segurança, que pode ser um usuário ou uma entidade de serviço de aplicativo.
No portal do Azure, navegue até o namespace Hubs de Eventos. Vá para "Controle de acesso (IAM)" na navegação à esquerda.
Selecione + Adicionar e selecione
Add role assignment
.Na guia Função, selecione Proprietário de Dados dos Hubs de Eventos do Azure e selecione o botão Avançar.
Na guia Membros, selecione a Identidade gerenciada na seção Atribuir acesso a.
Selecione o link +Selecionar membros .
Na página Selecionar identidades gerenciadas, siga estas etapas:
Selecione a assinatura do Azure que tem a VM.
Em Identidade gerenciada, selecione Máquina virtual
Selecione a identidade gerenciada da máquina virtual.
Selecione Selecionar na parte inferior da página.
Selecione Rever + Atribuir.
Reinicie a VM e entre novamente na VM para a qual você configurou a identidade gerenciada.
Navegar para
azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer
.Alterne para a
src/main/resources/
pasta e abraconsumer.config
o . Substituanamespacename
pelo nome do namespace dos Hubs de Eventos.bootstrap.servers=NAMESPACENAME.servicebus.windows.net:9093 security.protocol=SASL_SSL sasl.mechanism=OAUTHBEARER sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required; sasl.login.callback.handler.class=CustomAuthenticateCallbackHandler;
Nota
Você pode encontrar todas as amostras OAuth para Hubs de Eventos para Kafka aqui.
Volte para a pasta Consumer onde está o arquivo pom.xml e, execute o código do consumidor e processe eventos do hub de eventos usando seus clientes Kafka:
mvn clean package mvn exec:java -Dexec.mainClass="TestConsumer"
Inicie outra janela de prompt de comando e navegue até
azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer
.Alterne para a
src/main/resources/
pasta e abraproducer.config
o . Substituamynamespace
pelo nome do namespace dos Hubs de Eventos.Volte para a pasta Producer onde o arquivo está e, execute o
pom.xml
código do produtor e transmita eventos para Hubs de Eventos:mvn clean package mvn exec:java -Dexec.mainClass="TestProducer"
Você deve ver mensagens sobre eventos enviados na janela do produtor. Agora, verifique a janela do aplicativo do consumidor para ver as mensagens que ele recebe do hub de eventos.
Validação de esquema para Kafka com Registro de Esquema
Você pode usar o Registro de Esquema do Azure para executar a validação de esquema ao transmitir dados com seus aplicativos Kafka usando Hubs de Eventos. O Registro de Esquema do Azure de Hubs de Eventos fornece um repositório centralizado para gerenciar esquemas e você pode conectar perfeitamente seus aplicativos Kafka novos ou existentes com o Registro de Esquema.
Para saber mais, consulte Validar esquemas para aplicativos Apache Kafka usando o Avro.
Próximos passos
Neste artigo, você aprendeu como transmitir para Hubs de Eventos sem alterar seus clientes de protocolo ou executar seus próprios clusters. Para saber mais, consulte Guia do desenvolvedor do Apache Kafka para Hubs de Eventos do Azure.