• SpringBoot整合MQ


    1.创建工程并引入依赖

    <!--        添加rocketmq的启动器-->
            <dependency>
                <groupId>org.apache.rocketmq</groupId>
                <artifactId>rocketmq-spring-boot-starter</artifactId>
                <version>2.1.1</version>
            </dependency>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.编写配置

    rocketmq:
      name-server: 192.168.16.136:9876 #配置NameServer地址
      producer:
        group: "g1"  #配置生产者组名称
      consumer:
        group: "g1" #配置消费者组名称
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    注:通过在配置文件中指定名称服务器和生产者组名等属性,RocketMQ的Spring Boot集成可以根据这些配置信息来创建和初始化RocketMQ的生产者。
    这样就可以在应用程序中方便地使用RocketMQ发送消息到指定的名称服务器和生产者组。

    3.编写一个监听器

    @Component
    //这是RocketMQ的消息监听器注解,它指定了要监听的消息主题(topic)和消费者组(consumerGroup)。${rocketmq.consumer.group}表示消费者组的值是从配置文件中获取的。
    @RocketMQMessageListener(topic = "t1",consumerGroup ="${rocketmq.consumer.group}" )
    public class ConsumerListener implements RocketMQListener<String> {
    //    当消费者接收到消息时将会调用该方法。String message是接收到的消息内容。
        @Override
        public void onMessage(String message) {
            System.out.println("消费者收到了生产者的消费:"+message+",已经消费!");
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    3.编写控制器

    @RestController
    public class ProducerController {
        @Resource
        RocketMQTemplate rocketMQTemplate;
    
        @GetMapping("/test")
        public String producerTest(){
    //        1.发送一个字符串的消息,发送普通消息
            rocketMQTemplate.convertAndSend("t1","第一条消息");
    
    //        2.发送单向消息
            rocketMQTemplate.sendOneWay("t1","单项消息");
    
    //        3.发送同步消息
            rocketMQTemplate.syncSend("t1","同步消息");
    
    //        4.发送异步消息
            rocketMQTemplate.asyncSend("t1", "异步消息", new SendCallback() {
    //            发送成功的时候会触发的方法
                @Override
                public void onSuccess(SendResult sendResult) {
                    System.out.println("------发送成功------"+sendResult);
                }
    //          发送失败时会触发的方法
                @Override
                public void onException(Throwable throwable) {
                    System.out.println(throwable);
                }
            });
    
    //        5.发送顺序消息
            rocketMQTemplate.syncSendOrderly("t1","顺序消息","1");
    
    //        6.事务消息
            rocketMQTemplate.sendMessageInTransaction("t1", new Message<String>() {
    //            获取内容
                @Override
                public String getPayload() {
                    return "这是发送的事务消息";
                }
    //          消息头
                @Override
                public MessageHeaders getHeaders() {
                    return null;
                }
            },"2");
            
            return "ok";
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51

    注:通过使用RocketMQTemplate,您可以在Spring Boot应用程序中轻松地与RocketMQ进行交互,实现消息的发送和接收。
    RocketMQTemplate提供了以下一些常用的方法:
    convertAndSend(topic, message):将消息发送到指定的主题。
    convertAndSend(topic, key, message):将带有指定键的消息发送到指定的主题。
    syncSend(topic, message):同步发送消息到指定的主题,并等待发送结果。
    syncSendOrderly(topic, message, hashKey):有序地发送消息到指定的主题,保证同一个hashKey的消息发送到同一个消息队列。
    asyncSend(topic, message, sendCallback):异步发送消息到指定的主题,并提供发送结果的回调函数。
    sendOneWay(topic, message):单向发送消息到指定的主题,不关心发送结果。

    测试结果1:

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    【小月电子】FPGA开发板(XLOGIC_V1)系统学习教程-LESSON9简易测试系统
    03--nginx架构实战
    微服务从代码到k8s部署应有尽有系列(七、支付服务)
    EIA/TIA 561 Pin Layout and RS-232 pin assignments
    [Windows] GoLand 加载 k8s v1.14或之前版本 源码
    C++避坑小知识&&错题笔记
    阿里云代理商:阿里云跨分部抵销前营收267.6亿元,跨分部抵销后营收207.57亿元,抵销后营收环比增长达17.37%。
    规范的项目流程图怎么写
    10.6、华为数通HCIP-DataCom H12-821单选题:101-120
    业务架构、技术架构、项目管理的有机结合
  • 原文地址:https://blog.csdn.net/youraiai/article/details/132690801