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队列

  • 相关阅读:
    虚方法 C++快速入门23
    抽象方法 C++快速入门24
    网址探测器 零基础入门学习Delphi41
    网址探测器 零基础入门学习Delphi41
    抽象方法 C++快速入门24
    虚方法 C++快速入门23
    运算符重载 C++快速入门25
    静态属性和静态方法2 C++快速入门22
    linux系统中的文件访问控制列表ACL
    linux系统中的文件类型
  • 原文地址:https://www.cnblogs.com/WarBlog/p/15475576.html
Copyright © 2011-2022 走看看