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
Klonen Sie das Beispielrepository:
git clone https://github.com/Azure-Samples/serviceconnector-springcloud-confluent-springboot/
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
Anmelden bei Confluent Cloud mit SSO von Azure
Verwenden der Standardumgebung oder Erstellen einer neuen Umgebung
Erstellen Sie ein Kafka-Cluster mit den folgenden Informationen:
- Clustertyp: Standard
- Region/Zonen: eastus(Virginia), Einzelzone
- Clustername:
cluster_1
oder ein anderer Name
Notieren Sie in Cluster-Übersicht ->Cluster-Einstellungen die Bootstrapserver-URL für Kafka.
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.
Erstellen eines Themas mit dem Namen
test
mit Partitionen (6) in Themen ->+ Thema hinzufügenWählen Sie unter Standardumgebung die Registerkarte Schemaregistrierung aus. Aktivieren Sie die Schemaregistrierung, und notieren Sie sich den API-Endpunkt.
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
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>
Erstellen Sie das Projekt mit gradle.
./gradlew build
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.
Nächste Schritte
Befolgen Sie die unten aufgeführten Tutorials, um mehr über Service Connector zu erfahren.