Envoyez et recevez des messages à l'aide du SDK ApsaraMQ for RocketMQ pour Java dans une application Spring ou Spring Boot.
ApsaraMQ for RocketMQ fournit des projets de démonstration qui intègrent le SDK ons-client en tant que beans gérés par Spring, vous offrant ainsi des composants producteur et consommateur prêts pour l'injection de dépendances. Ce guide présente la démonstration Spring Boot. La démonstration Spring standard suit le même modèle.
Types de messages pris en charge
L'intégration Spring prend en charge les producteurs et les consommateurs pour les types de messages suivants :
Messages normaux
Messages ordonnés
Messages transactionnels
L'intégration Spring ne prend pas en charge les messages planifiés ni les messages différés.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
IntelliJ IDEA ou un autre IDE Java
Une instance ApsaraMQ for RocketMQ avec un endpoint TCP
Une paire AccessKey (ID AccessKey et secret AccessKey)
Étape 1 : Télécharger le projet de démonstration
Clonez ou téléchargez l'un des projets de démonstration depuis GitHub :
| Démonstration | Référentiel |
|---|---|
| Spring Boot (utilisé dans ce guide) | java-springboot-demo |
| Spring | java-spring-demo |
Étape 2 : Créer les ressources
Créez les ressources suivantes dans la console ApsaraMQ for RocketMQ :
Créer un topic. Définissez le type de message pour qu'il corresponde aux messages que vous prévoyez d'envoyer. Par exemple, sélectionnez Normal pour les messages normaux ou Ordered pour les messages ordonnés.
Créer un groupe. Sélectionnez TCP comme type de protocole, car le SDK ons-client communique via TCP.
Obtenir l'endpoint TCP de votre instance.
Étape 3 : Configurer le projet de démonstration
Ouvrez le projet de démonstration dans IntelliJ IDEA, puis mettez à jour la dépendance Maven et les propriétés de l'application.
Ajouter la dépendance ons-client
Ajoutez les dépendances suivantes à votre fichier pom.xml. Remplacez la version d'ons-client par la dernière version disponible. Pour l'historique des versions, consultez les notes de version.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun.openservices</groupId>
<artifactId>ons-client</artifactId>
<!-- Replace with the latest version -->
<version>1.8.8.8.Final</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Définir les propriétés de l'application
Modifiez le fichier java-springboot-demo/src/main/resources/application.properties avec les informations relatives aux ressources obtenues à l'étape 2.
|
Paramètre |
Description |
Exemple |
||
|
|
ID AccessKey pour l'authentification |
|
||
|
|
Secret AccessKey pour l'authentification |
|
||
|
|
Endpoint TCP de votre instance ApsaraMQ for RocketMQ |
|
||
|
|
Nom du topic pour les messages normaux |
|
||
|
|
ID de groupe pour le consommateur |
|
||
|
|
Expression de filtrage par tag. Utilisez |
TagB`. Pour plus de détails, consultez la section Filtrage des messages. |
|
|
|
|
Nom du topic pour les messages ordonnés |
|
||
|
|
ID de groupe pour le consommateur de messages ordonnés |
|
||
|
|
Expression de filtrage par tag pour les messages ordonnés |
|
Étape 4 : Exécuter la démonstration
Assurez-vous que les classes situées sous java-springboot-demo/src/main/java/com/aliyun/openservices/springboot/example sont importées dans votre projet, puis exécutez la méthode main().
Référence du code d'exemple
La démonstration inclut des producteurs et des consommateurs pour chaque type de message pris en charge. Tout le code source est disponible sur GitHub.
Messages normaux
| Rôle | Classe |
|---|---|
| Producteur | ProducerClient.java |
| Envoi synchrone | SyncProducerTest.java |
| Envoi asynchrone | AsyncProducerTest.java |
| Consommateur (filtrage par tag) | ConsumerClient.java |
| Consommateur (filtrage SQL) | SqlConsumerClient.java |
Messages ordonnés
| Rôle | Classe |
|---|---|
| Producteur | OrderProducerClient.java |
| Consommateur | OrderConsumerClient.java |
Messages transactionnels
| Rôle | Classe |
|---|---|
| Producteur | TransactionProducerClient.java |
| Consommateur | ConsumerClient.java |
Étapes suivantes
Filtrage des messages — Filtrez les messages par tag ou par expression SQL.
Notes de version — Vérifiez la dernière version du SDK ons-client.