springboot+rockermq implémente l'envoi et la réception de messages simples
Il existe trois façons d'envoyer des messages ordinaires : l'envoi unidirectionnel, l'envoi synchrone et l'envoi asynchrone.
Présentons l'intégration springboot+rockermq pour réaliser l'envoi et la réception de messages ordinaires
Créez un projet Springboot et ajoutez une dépendance rockermq#🎜🎜 # #🎜🎜 ## r#r#🎜🎜 ## 🎜🎜 ## 🎜🎜#Configurer Rocketmq#🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 端
Serveur :#🎜🎜 # port : 8083#producteur
producteur 🎜# #Quand le message atteint 4096 octets, le message sera compressé. Par défaut 4096max-message-size : 4194304#Réessayer si l'envoi du message de synchronisation échoue Fois
retry-next-server : true
retry-times-when-send-failed : 3
#S'il faut réessayer d'autres agents en cas d'échec de l'envoi interne, ce paramètre ne prendra effet que lorsqu'il y a plusieurs courtiers#
retry-times-when-send-async-failed: 3
# 🎜🎜#Créer un nouveau contrôleur à envoyer messages :<!--rocketMq依赖--> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.2.1</version> </dependency>
SpringBoot nous fournit la classe de modèle RocketMQTemplate, que nous pouvons utiliser pour envoyer des messages sous diverses formes.
La méthode d'envoi précise le sujet sujet test-sujet.
Créez un nouveau consommateur de messages pour écouter RocketMQConsumerListener, écouter les messages et consommer des messagespackage com.example.springbootrocketdemo.controller; import org.apache.rocketmq.client.producer.SendCallback; import org.apache.rocketmq.client.producer.SendResult; import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 普通信息的三种方式:同步、异步、单向 * @author qzz */ @RestController public class RocketMQCOntroller { @Autowired private RocketMQTemplate rocketMQTemplate; /** * 发送普通消息 * convertAndSend(String destination, Object payload) 发送字符串比较方便 */ @RequestMapping("/send") public void send(){ rocketMQTemplate.convertAndSend("test-topic","test-message"); } /** * 发送同步消息 */ @RequestMapping("/testSyncSend") public void testSyncSend(){ //参数一:topic 如果想添加tag,可以使用"topic:tag"的写法 //参数二:消息内容 SendResult sendResult = rocketMQTemplate.syncSend("test-topic","同步消息测试"); System.out.println(sendResult); } /** * 发送异步消息 */ @RequestMapping("/testASyncSend") public void testASyncSend(){ //参数一:topic 如果想添加tag,可以使用"topic:tag"的写法 //参数二:消息内容 //参数三:回调 rocketMQTemplate.asyncSend("test-topic", "异步消息测试", new SendCallback() { @Override public void onSuccess(SendResult sendResult) { System.out.println(sendResult); } @Override public void onException(Throwable throwable) { System.out.println("消息发送异常"); throwable.printStackTrace(); } }); } /** * 发送单向消息 */ @RequestMapping("/testOneWay") public void testOneWay(){ //参数一:topic 如果想添加tag,可以使用"topic:tag"的写法 //参数二:消息内容 rocketMQTemplate.sendOneWay("test-topic","单向消息测试"); } }Classe de consommateur à implémenter l'interfaceRocketMQListener
et à spécifier dynamiquement le type de message String.
@RocketMQMessageListener annotation
à la classe, spécifiez le sujet sujet test-topic et le test du groupe de consommateursL'envoi et la réception de messages simples La construction est complet!
Démarrer le service et tester la consommation des messages
#🎜🎜 #
RocketMQListener
接口,以及动态指定消息类型String。
类上要加上@RocketMQMessageListener注解
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!