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

  • 相关阅读:
    Spring/Spring-Boot 学习 连接redis数据库
    Spring/Spring-Boot 学习 答疑
    Spring/Spring-Boot 学习 paoding-rose-jade 连接MySQL数据库
    Spring/Spring-Boot 学习 Bean注入的方式
    Spring/Spring-Boot 学习 @Autowired 与 @Resource
    博客园主题与代码高亮
    从不懂spring的开始的学习之旅
    nginx 缓存服务器配置
    jenkins + sonar代码质量自动化分析平台
    Linux下如何查看哪些进程占用的CPU内存资源最多
  • 原文地址:https://www.cnblogs.com/WarBlog/p/15475576.html
Copyright © 2020-2023  润新知