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.

Clonare o scaricare l'app di esempio

  1. Clonare il repository di esempio:

    git clone https://github.com/Azure-Samples/serviceconnector-springcloud-confluent-springboot/
    
  2. 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

  1. Accedere a Confluent Cloud usando l'accesso SSO fornito da Azure

    Il collegamento dell'accesso SSO di Confluent Cloud tramite il portale di Azure

  2. Usare l'ambiente predefinito o crearne uno nuovo

    Ambiente cloud di Apache Kafka in Confluent Cloud

  3. 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.
  4. In Panoramica del cluster ->Impostazioni del cluster, prendere nota dell'URL del server Bootstrap Kafka.

    Impostazioni del cluster di Apache Kafka in Confluent Cloud

  5. 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.

  6. Creare un argomento denominato test con partizioni 6 in Argomenti ->+ Aggiungi argomento

  7. In ambiente predefinito, selezionare la scheda Registro schema. Abilitare il Registro schema e prendere nota dell'endpoint API.

  8. 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

  1. Accedere ad Azure e scegliere la sottoscrizione.

    az login
    
    az account set --subscription <Name or ID of your subscription>
    
  2. Compilare il progetto tramite gradle.

    ./gradlew build
    
  3. 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.

Metriche di esempio:

Passaggi successivi

Per altre informazioni sul connettore di servizi seguire le esercitazioni riportate di seguito.