zoukankan      html  css  js  c++  java
  • SpringAMQP 基础消息队列 HelloWorld

    SpringAMQP的官方地址:https://spring.io/projects/spring-amqp

    AMQP:Advanced Message Queuing Protocol,用于在应用程序之间传递业务消息的开放标准,该协议与语言和平台无关,更符合微服务中独立性的要求。

    SpringAMQP:基于AMQP协议定义的一套API规范,提供了模板来发送和接受消息。包含两部分,spring-amqp基础抽象,spring-rabbit底层的默认实现

    利用SpringAMQP实现HelloWorld中的基础消息队列功能

    引入AMQP依赖

    publisher和consumer服务都需要amqp依赖,把依赖直接放到父工程中

            <!--AMQP依赖,包含RabbitMQ-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-amqp</artifactId>
            </dependency>

    编写application.yml

    publisher和consumer服务的application都添加mq连接信息

    spring:
      rabbitmq:
        host: 192.168.223.128 # 主机名
        port: 5672 # 端口
        virtual-host: / # 虚拟主机
        username: guest # 用户名
        password: guest # 密码

    publisher编写发送消息代码

    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class SpringAmqpTest {
        @Autowired
        private RabbitTemplate rabbitTemplate;
        @Test
        public void testSimpleQueue() {
            String queueName = "simple.queue";
            String message = "hello, spring amqp!";
            rabbitTemplate.convertAndSend(queueName, message);
        }
    }

    @RunWith(SpringRunner.class)将测试类添加到Spring容器中,自动注入才能生效

    @SpringBootTest注解会自动检索程序的配置文件,检索顺序是从当前包开始,逐级向上查找被@SpringBootApplication或@SpringBootConfiguration注解的类

    consumer编写获取消息代码

    在consumer服务中新建一个类,编写消费逻辑

    @Component
    public class SpringRabbitListener {
        @RabbitListener(queues = "simple.queue")
        public void listenSimpleQueueMessage(String msg) throws InterruptedException {
            System.out.println("spring 消费者接收到消息 :【" + msg + "】");
        }
    }

    @Component:添加到spring容器中,spring容器中的一个Bean

    @RabbitListener:监听队列,监听simple.queue队列

  • 相关阅读:
    js获取元素位置和style的兼容性写法
    javascript正则表达式---正向预查
    Typescript学习笔记(五) 模块机制
    Typescript学习笔记(四)class 类
    Typescript学习笔记(三)变量声明及作用域
    Typescript学习笔记(二)枚举
    Typescript学习笔记(一)基础类型
    tar命令
    linux的nohup命令的用法。
    vue.js移动端app实战1
  • 原文地址:https://www.cnblogs.com/WarBlog/p/15475576.html
Copyright © 2011-2022 走看看