Freigeben über


Tutorial: Bereitstellen einer mit Apache Kafka in Confluent Cloud verbundenen Spring Boot-App mithilfe eines Dienstconnectors in Azure Spring Apps

Hier erfahren Sie, wie Sie für eine Spring Boot-Anwendung, die auf Azure Spring Apps ausgeführt wird, auf Apache Kafka in Confluent Cloud zugreifen. In diesem Tutorial führen Sie die folgenden Aufgaben durch:

  • Erstellen von Apache Kafka in Confluent Cloud
  • Erstellen einer Spring Cloud-Anwendung
  • Erstellen und Bereitstellen der Spring Boot-App
  • Verbinden von Apache Kafka in Confluent Cloud mit Azure Spring Apps mithilfe eines Dienstconnectors

Warnung

Microsoft empfiehlt, immer den sichersten Authentifizierungsflow zu verwenden. Der in diesem Verfahren beschriebene Authentifizierungsflow erfordert ein sehr hohes Maß an Vertrauen in die Anwendung und birgt Risiken, die bei anderen Flows nicht vorhanden sind. Sie sollten diesen Flow nur verwenden, wenn andere sicherere Flows (z. B. verwaltete Identitäten) nicht anwendbar sind.

Voraussetzungen

  • Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.

  • Java 8 oder eine neuere Version mit langfristigem Support (LTS) 1.

  • Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.

  • Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.

    • Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.

    • Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.

    • Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.

Klonen oder Herunterladen der Beispiel-App

  1. Klonen Sie das Beispielrepository:

    git clone https://github.com/Azure-Samples/serviceconnector-springcloud-confluent-springboot/
    
  2. Navigieren Sie zum folgenden Ordner:

    cd serviceconnector-springcloud-confluent-springboot
    

Vorbereiten von Clouddiensten

Erstellen einer Instanz von Apache Kafka für Confluent Cloud

Erstellen Sie eine Instanz von Apache Kafka für Confluent Cloud, indem Sie diese Anleitung befolgen.

Erstellen eines Kafka-Clusters und einer Schemaregistrierung in Confluent Cloud

  1. Anmelden bei Confluent Cloud mit SSO von Azure

    Link der SSO-Anmeldung bei Confluent Cloud über das Azure-Portal

  2. Verwenden der Standardumgebung oder Erstellen einer neuen Umgebung

    Cloudumgebung von Apache Kafka in Confluent Cloud

  3. Erstellen Sie ein Kafka-Cluster mit den folgenden Informationen:

    • Clustertyp: Standard
    • Region/Zonen: eastus(Virginia), Einzelzone
    • Clustername: cluster_1 oder ein anderer Name
  4. Notieren Sie in Cluster-Übersicht ->Cluster-Einstellungen die Bootstrapserver-URL für Kafka.

    Clustereinstellungen von Apache Kafka in Confluent Cloud

  5. Erstellen Sie in Datenintegration ->API-Schlüssel ->+ Schlüssel hinzufügen API-Schlüssel für den Cluster mit globalem Zugriff. Notieren Sie sich den Schlüssel und das Geheimnis.

  6. Erstellen eines Themas mit dem Namen test mit Partitionen (6) in Themen ->+ Thema hinzufügen

  7. Wählen Sie unter Standardumgebung die Registerkarte Schemaregistrierung aus. Aktivieren Sie die Schemaregistrierung, und notieren Sie sich den API-Endpunkt.

  8. Erstellen Sie API-Schlüssel für die Schemaregistrierung. Speichern Sie den Schlüssel und das Geheimnis.

Erstellen einer Azure Spring Apps-Instanz

Erstellen Sie eine Instanz von Azure Spring Apps, indem Sie die Schnellstartanleitung zu Azure Spring Apps in Java befolgen. Stellen Sie sicher, dass Ihre Azure Spring Apps-Instanz in einer Region mit Dienstconnectorunterstützung erstellt wird.

Erstellen und Bereitstellen der App

Erstellen der Beispiel-App und Erstellen einer neuen Spring-App

  1. Melden Sie sich bei Azure an, und wählen Sie Ihr Abonnement aus.

    az login
    
    az account set --subscription <Name or ID of your subscription>
    
  2. Erstellen Sie das Projekt mit gradle.

    ./gradlew build
    
  3. Erstellen Sie die App mit einem zugewiesenen öffentlichen Endpunkt. Fügen Sie die Option --runtime-version=Java_11 ein, wenn Sie beim Generieren des Spring Cloud-Projekts die Java-Version 11 ausgewählt haben.

    az spring app create -n hellospring -s <service-instance-name> -g <your-resource-group-name> --assign-endpoint true
    

Herstellen einer Dienstverbindung mit dem Dienstconnector

Führen Sie den folgenden Befehl aus, um Ihre Apache Kafka-Instanz in Confluent Cloud mit Ihrer Spring Cloud-App zu verbinden.

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>

Ersetzen Sie die folgenden Platzhaltertexte durch Ihre eigenen Daten:

  • Ersetzen Sie <your-resource-group-name> durch den Ressourcengruppennamen, den Sie für Ihre Azure Spring Apps-Instanz erstellt haben.
  • Ersetzen Sie <kafka-bootstrap-server-url> durch Ihre Kafka-Bootstrapserver-URL. Beispiel: pkc-xxxx.eastus.azure.confluent.cloud:9092
  • Ersetzen Sie <cluster-api-key> und <cluster-api-secret> durch Ihren Cluster-API-Schlüssel und das zugehörige Geheimnis.
  • Ersetzen Sie <kafka-schema-registry-endpoint> durch Ihren Kafka-Schemaregistrierungsendpunkt. Beispiel: https://psrc-xxxx.westus2.azure.confluent.cloud
  • Ersetzen Sie <registry-api-key> und <registry-api-secret> durch Ihren Kafka-Schemaregistrierungs-API-Schlüssel und das zugehörige Geheimnis.

Hinweis

Wird die Fehlermeldung „Das Abonnement ist nicht für die Verwendung des Ressourcenanbieters "{0}" registriert.“ angezeigt, führen Sie az provider register -n Microsoft.ServiceLinker aus, um den Dienstconnector-Ressourcenanbieter zu registrieren. Führen Sie anschließend erneut den Verbindungsbefehl aus.

Bereitstellen der JAR-Datei

Führen Sie den folgenden Befehl aus, um die JAR-Datei (build/libs/java-springboot-0.0.1-SNAPSHOT.jar) in Ihre Spring Cloud-App hochzuladen.

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

Überprüfen der Kafka-Datenerfassung

Navigieren Sie im Azure-Portal zum Endpunkt Ihrer Spring Cloud-App, und wählen Sie die Anwendungs-URL aus. Der Text „10 Meldungen wurden für den Thementest erstellt.“ wird angezeigt.

Wechseln Sie dann zum Confluent-Portal. Auf der Seite des Themas wird der Produktionsdurchsatz angezeigt.

Beispielmetriken

Nächste Schritte

Befolgen Sie die unten aufgeführten Tutorials, um mehr über Service Connector zu erfahren.