SpringAMQP

本文介绍如何使用Spring AMQP实现消息队列功能。通过引入依赖并配置RabbitMQ,使用RabbitTemplate发送消息到指定队列,并在消费者服务中设置监听进行消息处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Basic Queue简单队列模型

什么是SpringAMQP?

在这里插入图片描述
SpringAmqp的官方地址:https://spring.io/projects/spring-amqp

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

流程如下:

1.在父工程中引入spring-amqp的依赖

因为publisher和consumer服务都需要amqp依赖,因此这里把依赖直接放至
父工程mq-demo中:

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

在这里插入图片描述

2.在publisher服务中利用RabbitTemplate发送消息到simple.queue这个队列
1.在publisher服务中编写application.yml,添加mq连接信息:
spring:
  rabbitmq:
    host: 192.168.138.100  # 自己的虚拟机ip地址
    port: 5672 # 端口
    username: itcast
    password: 123321
    virtual-host: /
2.在publisher服务中新建一个测试类,编写测试方法:
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringAmqpTest {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    public void testSendMessage2SimpleQueue(){
        String queuqname = "simple.queue";
        String message = "hello,spring amqp!";
        rabbitTemplate.convertAndSend(queuqname,message);
    }
    
}

在这里插入图片描述

在这里插入图片描述

3.在consumer服务中编写消费逻辑,绑定simple.queue这个队列

1.在consumer服务中编写application.yml,添加mq连接信息:

spring:
  rabbitmq:
      host: 192.168.138.100  # 自己的虚拟机ip地址
      port: 5672 # 端口
      username: itcast
      password: 123321
      virtual-host: /

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

@Component
public class SpringRabbitListener {

    @RabbitListener(queues = "simple.queue")
    public void listenSimpleQueue(String msg){
    System.out.println("消费者接收到simple.queue的消息:【"+msg+"】");
    }

}

在这里插入图片描述

总结

什么是AMQP?

  • 应用间消息通信的一种协议,与语言和平台无关。

SpringAMQP如何发送消息?

  • 引入amqp的starter依赖·配置RabbitMQ地址
  • 利用RabbitTemplate的convertAndSend方法

springAMQP如何接收消息?

  • 引入amqp的starter依赖
  • 配置RabbitMQ地址
  • 定义类,添加@Component注解
  • 类中声明方法,添加@RabbitListener注解, 方法参数就时消息注意:消息一旦消费就会从队列删除,RabbitMQ没有消息回溯功能
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿岳316

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值