Avvio rapido: Trasmettere i dati con Hub eventi di Azure e Apache Kafka
Questo avvio rapido mostra come trasmettere i dati in e da Hub eventi di Azure usando il protocollo Apache Kafka. Non verrà cambiato alcun codice nelle app campione Kafka produttore o consumatore. Sono appena state cambiate le configurazioni che il client usa per puntare a uno spazio dei nomi di Hub eventi, che espone un endpoint Kafka. Inoltre, non si compila e usa un cluster Kafka in autonomia. Si usa invece lo spazio dei nomi di Hub eventi con l'endpoint Kafka.
Nota
Questo esempio è disponibile su GitHub
Prerequisiti
Per completare questa guida introduttiva, accertarsi di soddisfare i requisiti seguenti:
- Leggere con attenzione l'articolo Hub eventi per Apache Kafka.
- Una sottoscrizione di Azure. Se non se ne dispone, creare un account gratuito prima di iniziare.
- Creare una macchina virtuale Windows e installare i componenti seguenti:
- Java Development Kit (JDK) 1.7+.
- Scaricare e installare un archivio binario Maven.
- Git
Creare uno spazio dei nomi di Hub eventi di Azure
Quando si crea uno spazio dei nomi di Hub eventi, l'endpoint Kafka per lo spazio dei nomi viene abilitato automaticamente. È ora possibile trasmettere gli eventi dalle applicazioni che usano il protocollo Kafka in Hub eventi. Seguire le istruzioni dettagliate illustrate in Creare un Hub eventi usando il portale di Azure per creare uno spazio dei nomi di Hub eventi. Se è in uso un cluster dedicato, vedere Creare uno spazio dei nomi e un Hub eventi in un cluster dedicato.
Nota
Hub eventi per Kafka non è supportato nel livello Basic.
Inviare e ricevere messaggi con Kafka in Hub eventi
Abilitare l'identità gestita assegnata dal sistema per la macchina virtuale. Per informazioni su come configurare un'identità gestita su una VM, vedere Configurare identità gestite per risorse di Azure in una macchina virtuale tramite il portale di Azure. Le identità gestite per le risorse di Azure offrono servizi di Azure con un'identità gestita automaticamente in Microsoft Entra ID. È possibile usare questa identità per l'autenticazione in qualsiasi servizio che supporta l'autenticazione di Microsoft Entra senza dover immettere le credenziali nel codice.
Usando la pagina Controllo di accesso dello spazio dei nomi di Hub eventi creato, assegnare il ruolo Proprietario dei dati di Hub eventi di Azure all'identità gestita della VM. Hub eventi di Azure supporta l'utilizzo di Microsoft Entra ID per autorizzare le richieste alle risorse di Hub eventi. Con Microsoft Entra ID, è possibile usare il controllo degli accessi in base al ruolo di Azure per concedere autorizzazioni a un'entità di sicurezza, che può essere un utente o un'entità servizio dell'applicazione.
Passare allo spazio dei nomi degli hub eventi nel portale di Azure. Passare a "Controllo di accesso (IAM)" nella struttura di navigazione di sinistra.
Selezionare + Aggiungi, quindi
Add role assignment
.Nella scheda Ruolo, selezionare Proprietario dei dati di Hub eventi di Azure e selezionare il pulsante Avanti.
Alla scheda Membri, selezionare Identità gestita nella sezione Assegnare accesso a.
Selezionare il link +Seleziona membri.
Alla pagina Selezionare identità gestite, seguire questi passaggi:
Selezionare la sottoscrizione di Azure che include la VM.
Per Identità gestita, selezionare Macchina virtuale
Selezionare l'identità gestita della macchina virtuale.
Selezionare Seleziona nella parte inferiore della pagina.
Selezionare Rivedi + Assegna.
Riavviare la macchina virtuale e accedere nuovamente alla VM per cui è stata configurata l'identità gestita.
Clonare gli Hub eventi di Azure per il repository di Kafka.
Accedere a
azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer
.Passare alla cartella
src/main/resources/
e aprireconsumer.config
. Sostituirenamespacename
con il nome dello spazio dei nomi di Hub eventi.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
Tutti gli esempi di OAuth per Hub eventi per Kafka sono disponibili qui.
Tornare alla cartella Consumer in cui si trova il file pom.xml ed eseguire il codice consumer gli eventi del processo dall'Hub eventi usando i client Kafka:
mvn clean package mvn exec:java -Dexec.mainClass="TestConsumer"
Avviare un'altra finestra del prompt dei comandi e passare a
azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer
.Passare alla cartella
src/main/resources/
e aprireproducer.config
. Sostituiremynamespace
con il nome dello spazio dei nomi di Hub eventi.Tornare alla cartella Producer, dove si trova il file
pom.xml
, eseguire il codice producer e tramettere eventi in Hub eventi:mvn clean package mvn exec:java -Dexec.mainClass="TestProducer"
Si dovrebbero vedere i messaggi sugli eventi inviati nella finestra producer. Ora, controllare la finestra dell'app consumer per vedere i messaggi che riceve dall'Hub eventi.
Convalida schema per Kafka con registro schemi
È possibile usare registro schemi di Azure per eseguire una convalida schema quando si trasmettono dati con le applicazioni Kafka usando Hub eventi. Registro schemi di Azure di Hub eventi fornisce un repository centralizzato per la gestione degli schemi ed è possibile connettere senza problemi le applicazioni Kafka nuove o esistenti con registro schemi.
Per scoprire di più, vedere Convalidare schemi per le applicazioni Apache Kafka usando Avro.
Passaggi successivi
In questo articolo è stato illustrato come eseguire lo streaming in un'istanza di Hub eventi senza modificare i client di protocollo o eseguire cluster personalizzati. Per altre informazioni, vedere Guida per sviluppatori Apache Kafka per Hub eventi di Azure.