Tous les produits
Search
Centre de documentation

ApsaraMQ for Kafka:Envoi et réception de messages avec Spring Cloud

Dernière mise à jour :Aug 11, 2026

Spring Cloud simplifie la création d'applications microservices pilotées par les messages grâce à des fonctionnalités intégrées de découverte de services, de gestion de configuration et d'équilibrage de charge. Intégrez-le à ApsaraMQ for Kafka pour envoyer et recevoir des messages dans vos systèmes distribués.

Prérequis

Accès Internet (authentification et chiffrement requis)

Pour un accès via Internet, les messages sont authentifiés et chiffrés via le protocole SASL_SSL. Les clients se connectent à ApsaraMQ for Kafka par le biais d'un endpoint SSL. Pour plus d'informations sur les endpoints, consultez la rubrique Comparaison des endpoints.

Dans cet exemple, le package de démonstration est transféré vers le répertoire /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo.

  1. Connectez-vous au système Linux et exécutez la commande suivante pour accéder au répertoire du package de démonstration /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo.

    cd /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo
  2. Exécutez la commande suivante pour accéder au chemin du fichier de configuration.

    cd sasl-ssl/src/main/resources/
  3. Exécutez la commande suivante pour modifier le fichier application.properties et configurer les informations de l'instance en vous basant sur la liste des paramètres.

    vi application.properties
    ## Replace the placeholder values with your instance information.
    kafka.bootstrap-servers=alikafka-pre-cn-zv**********-1.alikafka.aliyuncs.com:9093,alikafka-pre-cn-zv**********-2.alikafka.aliyuncs.com:9093,alikafka-pre-cn-zv**********-3.alikafka.aliyuncs.com:9093
    kafka.consumer.group=test-spring
    kafka.output.topic.name=test-output
    kafka.input.topic.name=test-input
    kafka.ssl.truststore.location=/home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo/sasl-ssl/src/main/resources/kafka.client.truststore.jks
    
    ### The following binding parameters associate ApsaraMQ for Kafka with the Spring Cloud Stream binder. You can use the default values.
    spring.cloud.stream.bindings.MyOutput.destination=${kafka.output.topic.name}
    spring.cloud.stream.bindings.MyOutput.contentType=text/plain
    spring.cloud.stream.bindings.MyInput.group=${kafka.consumer.group}
    spring.cloud.stream.bindings.MyInput.destination=${kafka.input.topic.name}
    spring.cloud.stream.bindings.MyInput.contentType=text/plain
    
    ### The binder is the Spring Cloud abstraction for message middleware. You can use the default values for the following parameters.
    spring.cloud.stream.kafka.binder.autoCreateTopics=false
    spring.cloud.stream.kafka.binder.brokers=${kafka.bootstrap-servers}
    spring.cloud.stream.kafka.binder.configuration.security.protocol=SASL_SSL
    spring.cloud.stream.kafka.binder.configuration.sasl.mechanism=PLAIN
    spring.cloud.stream.kafka.binder.configuration.ssl.truststore.location=${kafka.ssl.truststore.location}
    spring.cloud.stream.kafka.binder.configuration.ssl.truststore.password=KafkaOnsClient
    ### If not present in the demo, add this parameter to disable server hostname verification.
    ### Server hostname verification checks whether the hostname in the SSL certificate matches the server's hostname. The default value is HTTPS.
    spring.cloud.stream.kafka.binder.configuration.ssl.endpoint.identification.algorithm=
    Tableau 1. Liste des paramètres

    Paramètre

    Description

    kafka.bootstrap-servers

    L'endpoint de l'instance ApsaraMQ for Kafka. Vous pouvez obtenir cet endpoint depuis la section Endpoint Information de la page Instance Details dans la console ApsaraMQ for Kafka.

    kafka.consumer.group

    Un Group sert à s'abonner aux messages. Vous pouvez créer un groupe sur la page Groups de la console ApsaraMQ for Kafka. Pour plus d'informations, consultez l'étape Étape 3 : Créer des ressources.

    kafka.output.topic.name

    Le topic destiné aux messages produits. L'application de démonstration envoie périodiquement des messages au contenu fixe vers ce topic. Vous pouvez créer un topic sur la page Topics de la console ApsaraMQ for Kafka. Pour plus d'informations, consultez l'étape Étape 3 : Créer des ressources.

    kafka.input.topic.name

    Le topic à partir duquel les messages sont consommés. Vous pouvez envoyer des messages vers ce topic depuis la console. L'application de démonstration consomme ces messages et les affiche dans le journal.

    kafka.ssl.truststore.location

    Le chemin d'accès au certificat racine SSL kafka.client.truststore.jks.

  4. Exécutez la commande suivante pour ouvrir le fichier kafka_client_jaas.conf et configurer le nom d'utilisateur et le mot de passe de l'instance.

    vi kafka_client_jaas.conf
    Remarque
    • Si la fonctionnalité de liste de contrôle d'accès (ACL) est désactivée pour l'instance, vous pouvez obtenir le nom d'utilisateur et le mot de passe de l'utilisateur par défaut depuis la page Instance Details de la console ApsaraMQ for Kafka.

    • Si la fonctionnalité de liste de contrôle d'accès (ACL) est activée pour l'instance, assurez-vous que l'utilisateur SASL utilise le mécanisme PLAIN et dispose des autorisations nécessaires pour envoyer et recevoir des messages. Pour plus d'informations, consultez la rubrique Accorder des autorisations à un utilisateur SASL.

    KafkaClient {
      org.apache.kafka.common.security.plain.PlainLoginModule required
      username="your-username"
      password="your-password";
    };
  5. Accédez au répertoire /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo/sasl-ssl et exécutez la commande suivante pour lancer la démonstration.

    sh run_demo.sh

    Le programme affiche les informations suivantes, ce qui indique qu'il a reçu le message envoyé par le programme de la console vers le topic spécifié dans kafka.output.topic.name.

    Send: hello world !!
    Send: hello world !!
    Send: hello world !!
    Send: hello world !!
  6. Connectez-vous à la console ApsaraMQ for Kafka pour vérifier que l'envoi et la réception des messages ont abouti.

    • Vérifiez si le topic spécifié pour le paramètre kafka.output.topic.name a bien reçu les messages provenant de l'application console. Pour plus d'informations, consultez la rubrique Interroger des messages.

    • Envoyez un message vers le topic configuré dans kafka.input.topic.name et examinez les journaux du programme de démonstration pour confirmer que le message y est affiché. Pour plus d'informations, consultez la rubrique Envoyer des messages.

Accès VPC (sans authentification ni chiffrement)

Au sein d'un VPC, les messages transitent via le protocole PLAINTEXT, sans authentification ni chiffrement. Les clients se connectent à ApsaraMQ for Kafka via l'endpoint par défaut. Pour plus d'informations sur les endpoints, consultez la rubrique Comparaison des endpoints.

Dans cet exemple, le package de démonstration est transféré vers le répertoire /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo.

  1. Connectez-vous au système Linux et exécutez la commande suivante pour accéder au répertoire /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo contenant le package de démonstration.

    cd /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo
  2. Exécutez la commande suivante pour accéder au chemin du fichier de configuration.

    cd vpc/src/main/resources/
  3. Exécutez la commande suivante pour modifier le fichier application.properties et configurer les informations de l'instance en vous basant sur la liste des paramètres.

    vi application.properties
    ### Modify the following parameters based on your instance information.
    kafka.bootstrap-servers=alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9092,alikafka-pre-cn-zv**********-2-vpc.alikafka.aliyuncs.com:9092,alikafka-pre-cn-zv**********-3-vpc.alikafka.aliyuncs.com:9092
    kafka.consumer.group=test-spring
    kafka.output.topic.name=test-output
    kafka.input.topic.name=test-input
  4. Accédez au répertoire /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo/vpc et exécutez la commande suivante pour lancer la démonstration.

    sh run_demo.sh

    Le programme affiche la sortie suivante.

    Send: hello world !!
    Send: hello world !!
    Send: hello world !!
    Send: hello world !!
  5. Connectez-vous à la console ApsaraMQ for Kafka pour vérifier que l'envoi et la réception des messages ont abouti.

    • Vérifiez si le topic spécifié pour le paramètre kafka.output.topic.name a bien reçu les messages provenant de l'application console. Pour plus d'informations, consultez la rubrique Interroger des messages.

    • Envoyez un message vers le topic configuré dans kafka.input.topic.name et examinez les journaux du programme de démonstration pour confirmer que le message y est affiché. Pour plus d'informations, consultez la rubrique Envoyer des messages.

Documentation connexe

Pour plus d'informations sur le framework Spring Cloud, consultez la documentation Spring Cloud Stream.