代码编织梦想

 

3.1.简介

Sprin有很多不同的项目,其中就有对AMQP的支持:

Spring AMQP的页面:http://spring.io/projects/spring-amqp

注意这里一段描述:

                                             

         Spring-amqp是对AMQP协议的抽象实现,而spring-rabbit 是对协议的具体实现,也是目前的唯一实现。底层使用的就是RabbitMQ。

3.2.依赖和配置

添加AMQP的启动器:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-amqp</artifactId>
    </dependency>

在application.yml中添加RabbitMQ地址:

    spring:
      rabbitmq:
        host: 192.168.56.101
        username: leyou
        password: leyou
        virtual-host: /leyou

3.3.监听者

在SpringAmqp中,对消息的消费者进行了封装和抽象,一个普通的JavaBean中的普通方法,只要通过简单的注解,就可以成为一个消费者。

    @Component
    public class Listener {
    
        @RabbitListener(bindings = @QueueBinding(
                value = @Queue(value = "spring.test.queue", durable = "true"),
                exchange = @Exchange(
                        value = "spring.test.exchange",
                        ignoreDeclarationExceptions = "true",
                        type = ExchangeTypes.TOPIC
                ),
                key = {"#.#"}))
        public void listen(String msg){
            System.out.println("接收到消息:" + msg);
        }
    }

- @Componet:类上的注解,注册到Spring容器
- @RabbitListener:方法上的注解,声明这个方法是一个消费者方法,需要指定下面的属性:
  - bindings:指定绑定关系,可以有多个。值是@QueueBinding的数组。@QueueBinding包含下面属性:
    - value:这个消费者关联的队列。值是@Queue,代表一个队列
    - exchange:队列所绑定的交换机,值是@Exchange类型
    - key:队列和交换机绑定的RoutingKey

类似listen这样的方法在一个类中可以写多个,就代表多个消费者。

3.4.AmqpTemplate

Spring最擅长的事情就是封装,把他人的框架进行封装和整合。

Spring为AMQP提供了统一的消息处理模板:AmqpTemplate,非常方便的发送消息,其发送方法:

红框圈起来的是比较常用的3个方法,分别是:

- 指定交换机、RoutingKey和消息体
- 指定消息
- 指定RoutingKey和消息,会向默认的交换机发送消息

3.5.测试代码

    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = Application.class)
    public class MqDemo {
    
        @Autowired
        private AmqpTemplate amqpTemplate;
    
        @Test
        public void testSend() throws InterruptedException {
            String msg = "hello, Spring boot amqp";
            this.amqpTemplate.convertAndSend("spring.test.exchange","a.b", msg);
            // 等待10秒后再结束
            Thread.sleep(10000);
        }
    }


 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/keep12moving/article/details/100774183

rabbitmq整合spring amqp实战!(全)_于忆的博客-爱代码爱编程

前言 1. AMQP 核心组件 RabbitAdminSpringAMQP声明RabbitTemplateSimpleMessageListenerContainerMessageListenerAdapterMessageConverter 2. RabbitAdmin RabbitAdmin类可以很好的才注意RabbitMQ,在Spring中直接

spring 与amqp_书香水墨的博客-爱代码爱编程

一、Spring 与AMQP 1.1 配置Spring支持AMQP消息 使用Spring AMQP前需要配置AMQP的RabbitMQ连接工厂。RabbitMQ是一个流行的开源消息代理,它实现了AMQP。Sprin

消息队列RabbitMQ之Spring-AMQP-爱代码爱编程

文章目录 前置知识Spring-AMQP什么是Spring-AMQP?什么是SpringBoot-AMQP?Spring-AMQP、Spring-Rabbit、SpringBoot-AMQPSpringBoot-AMQP搭建项目环境SpringBoot项目启动类application.yml配置文件创建监听者(消费者)创建生产者 前置知识

SpringAMQP详解-爱代码爱编程

一,Spring AMQP介绍 Java API 方式编程,有什么问题? Spring 封装 RabbitMQ 的时候,它做了什么事情? 1、管理对象(队列、交换机、绑定) 2、封装方法(发送消息、接收消息) Spring AMQP 是对 Spring 基于 AMQP 的消息收发解决方案,它是一个抽象层,不依赖于特定的 AMQP Broker 实

RabbitMQ消息中间件快速入门-爱代码爱编程

文章目录 一、同步和异步通讯1. 同步通讯2. 异步通讯二、RabbitMQ1. MessageQueue对比2. RabbitMQ快速入门【1】安装与启动【2】基本结构3. 五种消息模型介绍【1】入门案例1)publisher实现2)consumer实现4. SpringAMQP实现【1】Basic Queue 基本消息队列1)消息发送2)消息接

SpringAMQP--入门案例的消息发送-爱代码爱编程

Basic Queue 简单队列模型 在父工程mq-demo中引入依赖 <!--AMQP依赖,包含RabbitMQ--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo

MQ介绍,RabbitMQ在SpringAMQP中的使用-爱代码爱编程

同步调用 优点:时效性强,可以立即得到结果缺点:耦合度高,每次加入新需求都要该原来的代码性能和吞吐能力下降,调用者需要等待提供者响应后才能继续下一步操作有额外资源消耗,调用者在等待服务响应过程中,不能释放请求占用的资源有级联失效问题,如果服务提供者出现问题,所有调用方都会跟着出现问题异步调用——通过Broker代理,调用者在请求broker后可以立即返回

RabbitMQ之SpringAMQP-爱代码爱编程

目录 1、什么是SpringAMQP 2、简单队列模型 3、WorkQueue 工作队列 3.1 模拟WorkQueue,实现一个队列绑定多个消费者 1、消息发送 2、消息接收 3、测试 4、能者多劳 5、小结 4、发布/订阅 4.1 Fanout(广播) 1、在消费者中创建一个配置类,声明队列和交换机: 2、消息发送 3、

RabbitMQ:SpringAMQP-爱代码爱编程

SpringAMQP简单案例 1.创建SpringBoot项目2.准备两个Maven子项目3.编写两个子项目的启动类和application.yml文件4.编写生产者producer5.编写消费者consumer6.启动生产者SenderTest.java7.启动消费者 1.创建SpringBoot项目 2.准备两个Maven子项目 子

rabbitmq 的消息持久化与 spring amqp 的实现详解_知难行难1985的博客-爱代码爱编程

1.前言 要从崩溃或者重启的 RabbitMQ 中恢复消息,我们需要做消息持久化。如果消息要从 RabbitMQ 崩溃中恢复,那么必须满足三点,且三者缺一不可。 交换器必须是持久化。队列必须是持久化的。消息必须是持久化的。2.原生的实现方式 原生的 RabbitMQ 客户端需要完成三个步骤。 第一步,交换机的持久化。 // 参数1 exchang

微服务入门:rabbitmq与springamqp_mm天天写bug的博客-爱代码爱编程

文章目录 微服务入门:RabbitMQ与SpringAMQP一、同步和异步通讯1. 同步通讯2. 异步通讯3. MQ二、RabbitMQ入门1. RabbitMQ部署1.1 下载镜像1.2 安装RabbitMQ2. SpringAMQP2.1 Basic Queue 简单队列模型2.1.1 消息发送2.1.2 消息接收2.2 WorkQueue 任

rabbitmq 消息列队 之springampq_aaa_调皮捣蛋-的博客-爱代码爱编程

//itcast.fanout 交换机 @Bean public FanoutExchange fanoutExchange() { return new FanoutExchange("itcast.fanout1"); } //fanout.queue1 队列1 @Bean pu

rabbitmq入门-爱代码爱编程

1安装 docker pull rabbitmq:3-management #启动MQ容器 docker run \ -e RABBITMQ_DEFAULT_USER=itcast \ -e RABBITMQ_DEFA