Esercitazione: distribuire un'applicazione Spring Boot collegata ad Apache Kafka in Confluent Cloud con Connettore servizio in Azure Spring Apps
Informazioni su come accedere ad Apache Kafka in Confluent Cloud per un'applicazione Spring Boot in esecuzione su Azure Spring Apps. In questa esercitazione si completano le attività seguenti:
- Creare Apache Kafka in Confluent Cloud
- Creare un'applicazione Spring Cloud
- Compilare e distribuire un'applicazione Spring Boot
- Collegare Apache Kafka in Confluent Cloud alle Azure Spring Apps usando Connettore servizio
Avviso
Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Il flusso di autenticazione descritto in questa procedura richiede un livello di attendibilità molto elevato nell'applicazione e comporta rischi che non sono presenti in altri flussi. Si consiglia di usare questo flusso solo quando altri flussi più sicuri, come le identità gestite, non sono validi.
Prerequisiti
Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
Java 8 o una versione più recente con supporto a lungo termine (LTS) 1.
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
Clonare o scaricare l'app di esempio
Clonare il repository di esempio:
git clone https://github.com/Azure-Samples/serviceconnector-springcloud-confluent-springboot/
Passare alla cartella seguente:
cd serviceconnector-springcloud-confluent-springboot
Preparare i servizi cloud
Creare un'istanza di Apache Kafka per Confluent Cloud
Creare un'istanza di Apache Kafka per Confluent Cloud seguendo le indicazioni seguenti.
Creare il cluster Kafka e il registro schema in Confluent Cloud
Accedere a Confluent Cloud usando l'accesso SSO fornito da Azure
Usare l'ambiente predefinito o crearne uno nuovo
Creare un cluster Kafka con le informazioni seguenti:
- Tipo di cluster: standard
- Area geografica/zone: Stati Uniti orientali (Virginia), zona singola
- Nome del cluster:
cluster_1
o qualsiasi altro nome.
In Panoramica del cluster ->Impostazioni del cluster, prendere nota dell'URL del server Bootstrap Kafka.
Creare le chiavi API per il cluster in Integrazione dei dati ->Chiavi API ->+ Aggiungi chiave con Accesso globale. Prendere nota della chiave e della chiave privata.
Creare un argomento denominato
test
con partizioni 6 in Argomenti ->+ Aggiungi argomentoIn ambiente predefinito, selezionare la scheda Registro schema. Abilitare il Registro schema e prendere nota dell'endpoint API.
Creare le chiavi API per il registro schema. Salvare la chiave e la chiave segreta.
Creare un'istanza di Azure Spring Apps
Create un'istanza di Azure Spring Apps seguendo la Guida introduttiva ad Azure Spring Apps in Java. Assicurarsi che l'istanza di Azure Spring Apps sia creata in un'area geografica che supporta il Connettore di servizi.
Compilare e distribuire l'app
Compilare l'app di esempio e creare una nuova app Spring
Accedere ad Azure e scegliere la sottoscrizione.
az login az account set --subscription <Name or ID of your subscription>
Compilare il progetto tramite gradle.
./gradlew build
Creare l'app con un endpoint pubblico assegnato. Se è stata selezionata la versione 11 di Java durante la generazione del progetto di Spring Cloud, includere l'opzione
--runtime-version=Java_11
.az spring app create -n hellospring -s <service-instance-name> -g <your-resource-group-name> --assign-endpoint true
Creare una connessione di servizio con il Connettore di servizi
Eseguire il comando seguente per collegare Apache Kafka in Confluent Cloud all'app Spring Cloud.
az spring connection create confluent-cloud -g <your-spring-cloud-resource-group> --service <your-spring-cloud-service> --app <your-spring-cloud-app> --deployment <your-spring-cloud-deployment> --bootstrap-server <kafka-bootstrap-server-url> --kafka-key <cluster-api-key> --kafka-secret <cluster-api-secret> --schema-registry <kafka-schema-registry-endpoint> --schema-key <registry-api-key> --schema-secret <registry-api-secret>
Sostituire i testi segnaposto seguenti con i propri dati:
- Sostituire
<your-resource-group-name>
con il nome del gruppo di risorse create per l'istanza di Apps Spring Apps. - Sostituire
<kafka-bootstrap-server-url>
con l'URL del server bootstrap Kafka. Ad esempio:pkc-xxxx.eastus.azure.confluent.cloud:9092
. - Sostituire
<cluster-api-key>
e<cluster-api-secret>
con la chiave e la chiave privata API del cluster. - Sostituire
<kafka-schema-registry-endpoint>
con l'endpoint del registro schema Kafka. Ad esempio:https://psrc-xxxx.westus2.azure.confluent.cloud
. - Sostituire
<registry-api-key>
e<registry-api-secret>
con la chiave e la chiave privata API del registro schema Kafka.
Nota
Se viene visualizzato il messaggio di errore "La sottoscrizione non è registrata per l'uso di Microsoft.ServiceLinker", eseguire az provider register -n Microsoft.ServiceLinker
per registrare il provider di risorse di Connettore di servizi ed eseguire di nuovo il comando di connessione.
Implementare il file JAR
Eseguire il comando seguente per caricare il file JAR 9 (build/libs/java-springboot-0.0.1-SNAPSHOT.jar
) sull'app Spring Cloud.
az spring app deploy -n hellospring -s <service-instance-name> -g <your-resource-group-name> --artifact-path build/libs/java-springboot-0.0.1-SNAPSHOT.jar
Convalidare l'inserimento dei dati Kafka
Spostarsi sull'endpoint dell'app Spring Cloud dal portale di Azure e selezionare l'URL dell'applicazione. Verrà visualizzato "Sono stati prodotti 10 messaggi per l'argomento del test".
Quindi accedere al portale Confluent e la pagina dell'argomento mostrerà la velocità effettiva di produzione.
Passaggi successivi
Per altre informazioni sul connettore di servizi seguire le esercitazioni riportate di seguito.