Início rápido: transmita dados com os Hubs de Eventos do Azure e o Apache Kafka
Esse início rápido mostra a você 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 exemplo do produtor ou do consumidor do Kafka. Você acabou de atualizar as configurações que os clientes utilizam para apontar para um namespace dos Hubs de Eventos, que expõe um ponto de extremidade Kafka. Você também não cria e usa um cluster Kafka sozinho. Em vez disso, você usará o namespace do Hubs de Eventos com o ponto de extremidade Kafka.
Observação
Este exemplo está disponível no GitHub
Pré-requisitos
Para concluir este início rápido, você precisa atender aos seguinte pré-requisitos:
- Leia o artigo Hubs de Eventos para o Apache Kafka.
- Uma assinatura do Azure. Se você não tiver uma conta gratuita, crie uma antes de começar.
- Crie uma máquina virtual do Windows e instale os seguintes componentes:
- Java Development Kit (JDK) 1.7+.
- Realizar o download e instalar um armazenamento binário Maven
- Git
Criar um namespace de Hubs de Eventos do Azure
Quando você cria um namespace dos Hubs de Eventos, o ponto de extremidade do Kafka para o namespace é habilitado automaticamente. Você pode transmitir eventos de 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 dos Hubs de Eventos. Se estiver usando um cluster dedicado, confira Criar um namespace e um hub de eventos em um cluster dedicado.
Observação
Não há suporte para os Hubs de Eventos para Kafka na camada básica.
Enviar e receber mensagens com Kafka no Hubs de Evento
Habilite uma identidade gerenciada atribuída pelo sistema para a máquina virtual. Para obter mais informações sobre como configurar identidades gerenciadas em uma VM, confira Configurar identidades gerenciadas para recursos do Azure em uma VM usando o portal do Azure. As identidades gerenciadas dos recursos do Azure fornecem aos serviços do Azure uma identidade gerenciada automaticamente na ID do Microsoft Entra. Use essa identidade para autenticar qualquer serviço que dê suporte à autenticação do Microsoft Entra, sem a necessidade de ter as credenciais no código.
Usando a página Controle de acesso do namespace dos Hubs de Eventos que você criou, atribua a função Proprietário de Dados nos Hubs de Eventos do Azure à identidade gerenciada da VM. Os Hubs de Eventos do Azure dão suporte ao uso do Microsoft Entra ID para autorizar solicitações aos recursos dos Hubs de Eventos. Com o Microsoft Entra ID, você pode usar o RBAC (controle de acesso baseado em função) do Azure para conceder permissões a uma entidade de segurança, que pode ser um usuário ou entidade de serviço de aplicativo.
No Portal do Azure, navegue até o seu namespace de Hubs de Eventos. Acesse "Controle de Acesso (IAM)" no painel de navegação à esquerda.
Selecione + Adicionar e escolha
Add role assignment
.Na guia Função, selecione Proprietário de Dados nos Hubs de Eventos do Azure e selecione o botão Avançar.
Na guia Membros, selecione Identidade Gerenciada na seção Atribuir acesso a.
Escolha o link +Selecionar membros.
Na página Selecionar identidades gerenciadas, siga estas etapas:
Selecione a assinatura do Azure que contém a VM.
Em Identidade gerenciada, escolha Máquina virtual
Selecione a identidade gerenciada da máquina virtual.
Clique em Selecionar na parte inferior da página.
Selecione Examinar + Atribuir.
Reinicie a VM e faça logon novamente na VM para a qual você configurou a identidade gerenciada.
Navegue até
azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer
.Alterne para a pasta
src/main/resources/
e abraconsumer.config
. 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;
Observação
Encontre todas as amostras do OAuth para os Hubs de Eventos para o Kafka aqui.
Volte à pasta Consumidor em que está o arquivo pom.xml e execute o código do consumidor e processe eventos do hub de eventos usando os clientes do Kafka:
mvn clean package mvn exec:java -Dexec.mainClass="TestConsumer"
Inicie outra janela do prompt de comando e navegue até
azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer
.Alterne para a pasta
src/main/resources/
e abraproducer.config
. Substituamynamespace
pelo nome do namespace dos Hubs de Eventos.Volte à pasta Produtor em que está o arquivo
pom.xml
e execute o código do produtor e transmita eventos nos Hubs de Eventos:mvn clean package mvn exec:java -Dexec.mainClass="TestProducer"
Você verá mensagens sobre eventos enviados na janela do produtor. Agora, verifique a janela do aplicativo consumidor para ver as mensagens recebidas do hub de eventos.
Validação de esquema do Kafka com o 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 os Hubs de Eventos. O Registro de Esquema do Azure dos Hubs de Eventos fornece um repositório centralizado para gerenciar esquemas e você pode conectar perfeitamente seus aplicativos Kafka, novos ou existentes, ao Registro de Esquema.
Para saber mais, consulte Validar esquemas dos aplicativos Apache Kafka usando o Avro.
Próximas etapas
Neste artigo, você aprendeu como transmitir para os Hubs de Eventos sem alterar seus clientes de protocolo ou seus próprios clusters em execução. Para saber mais, confira Guia do desenvolvedor do Apache Kafka para Hubs de Eventos do Azure.