Partager via


Didacticiel : Déployer une application Spring Boot connectée à Apache Kafka sur Confluent Cloud avec un connecteur de service dans Azure Spring Apps

Découvrez comment accéder à Apache Kafka sur Confluent Cloud pour une application Spring Boot s’exécutant sur Azure Spring Apps. Dans ce tutoriel, vous allez effectuer les tâches suivantes :

  • Créer Apache Kafka sur Confluent Cloud
  • Créer une application Spring Cloud
  • Créer et déployer l’application Spring Boot
  • Connecter Apache Kafka sur Confluent Cloud à Azure Spring Apps à l’aide d’un connecteur de service

Avertissement

Microsoft vous recommande d’utiliser le flux d’authentification le plus sécurisé disponible. Le flux d'authentification décrit dans cette procédure demande un degré de confiance très élevé dans l'application et comporte des risques qui ne sont pas présents dans d'autres flux. Vous ne devez utiliser ce flux que si d’autres flux plus sécurisés, tels que les identités managées, ne sont pas viables.

Prérequis

  • Compte Azure avec un abonnement actif. Créez un compte gratuitement.

  • Java 8 ou une version plus récente avec prise en charge à long terme (LTS) 1.

Cloner ou télécharger l’exemple d’application

  1. Clonez l’exemple de dépôt :

    git clone https://github.com/Azure-Samples/serviceconnector-springcloud-confluent-springboot/
    
  2. Accédez au dossier suivant :

    cd serviceconnector-springcloud-confluent-springboot
    

Préparer les services cloud

Créer une instance de Apache Kafka pour Confluent Cloud

Créez une instance d’Apache Kafka pour Confluent Cloud, en suivant ces conseils.

Créer un cluster et un registre de schémas Kafka sur Confluent Cloud

  1. Connectez-vous à Confluent Cloud à l’aide de l’authentification unique fournie par Azure

    Lien de connexion SSO à Confluent Cloud à l’aide du portail Azure

  2. Utilisez l’environnement par défaut ou créer-en un

    Environnement cloud d’Apache Kafka sur Confluent Cloud

  3. Créez un cluster Kafka avec les informations suivantes :

    • Type de cluster : standard
    • Région/zones : eastus (Virginie), zone unique
    • Nom du cluster : cluster_1 ou tout autre nom.
  4. Dans Vue d’ensemble du cluster ->Paramètres du cluster, notez l’URL Serveur de démarrage Kafka.

    Paramètres de cluster d’Apache Kafka sur Confluent Cloud

  5. Créer des clés API pour le cluster dans Intégration de données>Clés API ->+ Ajouter une clé avec Accès global. Notez la clé et le secret.

  6. Créez une rubrique nommée test avec les partitions 6 dans Rubriques ->+ Ajouter une rubrique

  7. Sous l’environnement par défaut, sélectionnez l’onglet Registre de schémas. Activez le registre de schémas et notez le Point de terminaison d’API.

  8. Créer des clés API pour le registre de schémas. Enregistrez la clé et le secret.

Créer une instance Azure Spring Apps

Créez une instance d’Azure Spring Apps en suivant le démarrage rapide Azure Spring Apps dans Java. Assurez-vous que votre instance Azure Spring Apps est créée dans une région qui dispose du support du Connecteur de services.

Génération et déploiement de l’application

Générer l’exemple d’application et créer une application Spring

  1. Connectez-vous à Azure et définissez votre abonnement.

    az login
    
    az account set --subscription <Name or ID of your subscription>
    
  2. Générez le projet à l’aide de Gradle.

    ./gradlew build
    
  3. Créez l’application avec un point de terminaison public affecté. Si vous avez sélectionné Java version 11 lors de la génération du projet Spring Cloud, incluez le commutateur --runtime-version=Java_11.

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

Créez une connexion de service à l’aide du Connecteur de services

Exécutez la commande suivante pour connecter votre Apache Kafka sur Confluent Cloud à votre application 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>

Remplacez les textes d’espace réservé suivants par vos propres données :

  • Remplacez <your-resource-group-name> par le nom du groupe de ressources que vous avez créé pour votre instance Application Spring Apps.
  • Remplacez <kafka-bootstrap-server-url> par l’URL de votre serveur de démarrage Kafka. Par exemple : pkc-xxxx.eastus.azure.confluent.cloud:9092.
  • Remplacez <cluster-api-key> et <cluster-api-secret> par les clé et secret API de votre cluster.
  • Remplacez <kafka-schema-registry-endpoint> par votre point de terminaison du Registre de schémas Kafka. Par exemple : https://psrc-xxxx.westus2.azure.confluent.cloud.
  • Remplacez <registry-api-key> et <registry-api-secret> par les clé et secret API de votre cluster votre registre de schémas Kafka.

Notes

Si vous voyez le message d’erreur « L’abonnement n’est pas inscrit pour utiliser Microsoft.ServiceLinker », exécutez az provider register -n Microsoft.ServiceLinker pour inscrire le fournisseur de ressources Service Connector et réexécutez la commande de connexion.

Déployer le fichier JAR

Exécutez la commande suivante pour charger le fichier JAR (build/libs/java-springboot-0.0.1-SNAPSHOT.jar) dans votre application 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

Valider l’ingestion de données Kafka

Accédez au point de terminaison de votre application Spring Cloud à partir du Portail Azure, puis cliquez sur l’URL de l’application. Le message « 10 messages ont été produits pour le test de rubrique » s’affiche.

Accédez ensuite au portail Confluent. La page de la rubrique indique le débit de production.

Exemples de métriques

Étapes suivantes

Suivez les tutoriels ci-dessous pour en savoir plus sur Service Connector.