SpringBoot整合消息队列RabbitMQ的方法是什么

简介

在spring项目中,可以使用spring-rabbit去操作rabbitmq

尤其是在spring boot项目中只需要引入对应的amqp启动器依赖即可,方便的使用RabbitTemplate发送消息,使用注解接收消息。

一般在开发过程中:

生产者工程:

application.yml文件配置RabbitMQ相关信息;

在生产者工程中编写配置类,用于创建交换机和队列,并进行绑定

注入RabbitTemplate对象,通过RabbitTemplate对象发送消息到交换机

消费者工程:

application.yml文件配置RabbitMQ相关信息

创建消息处理类,用于接收队列中的消息并进行处理

生产端

1. 创建生产者SpringBoot工程(maven)2. 引入start,依赖坐标                org.springframework.boot                spring-boot-starter-amqp     3. 编写yml配置,基本信息配置4. 定义交换机,队列以及绑定关系的配置类5. 注入RabbitTemplate,调用方法,完成消息发送

添加依赖

修改pom.xml文件内容为如下:

    4.0.0            org.springframework.boot        spring-boot-starter-parent        2.1.4.RELEASE        com.itheima    springboot-rabbitmq-producer    1.0-SNAPSHOT                        org.springframework.boot            spring-boot-starter-amqp                            org.springframework.boot            spring-boot-starter-test            

登录后复制

启动类

package com.itheima.rabbitmq;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class ProducerApplication {    public static void main(String[] args) {        SpringApplication.run(ProducerApplication.class);    }}

登录后复制

配置RabbitMQ

配置文件

创建application.yml,内容如下:

spring:
  rabbitmq:
    host: localhost
    port: 5672
    virtual-host: /itcast
    username: heima
    password: heima

绑定交换机和队列

创建RabbitMQ队列与交换机绑定的配置类com.itheima.rabbitmq.config.RabbitMQConfig

package com.itheima.rahhitmq.config;import org.springframework.amqp.core.*;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configuration /// 配置类public class RabbitMQConfig {    public static final String EXCHAGE_NAME = "boot_topic_exchange";    public static final String QUEUE_NAME = "boot_queue";    // 交换机    @Bean("bootExchange")    public Exchange bootExchange(){        // 构建交换机对象        return ExchangeBuilder.topicExchange(EXCHAGE_NAME).durable(true).build();    }    //Queue 队列    @Bean("bootQueue")    public Queue bootQueue(){        return QueueBuilder.durable(QUEUE_NAME).build();    }    //队列和交换机的关系 Binding    /**     * 1 知道那个队列     * 2 知道那个交换机     * 3 routingKey     */    @Bean    public Binding bindQueueExchange(@Qualifier("bootQueue") Queue queue, @Qualifier("bootExchange") Exchange exchange){        return BindingBuilder.bind(queue).to(exchange).with("boot.#").noargs();    }}

登录后复制

搭建消费者工程

创建工程

生产端

1. 创建生产者SpringBoot工程

2. 引入start,依赖坐标

org.springframework.boot

spring-boot-starter-amqp

编写yml配置,基本信息配置
定义交换机,队列以及绑定关系的配置类
注入RabbitTemplate,调用方法,完成消息发送

添加依赖

修改pom.xml文件内容为如下:

    4.0.0            org.springframework.boot        spring-boot-starter-parent        2.1.4.RELEASE        com.itheima    springboot-rabbitmq-consumer    1.0-SNAPSHOT                        org.springframework.boot            spring-boot-starter-amqp            

登录后复制

启动类

package com.itheima.rabbitmq;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class ConsumerApplication {    public static void main(String[] args) {        SpringApplication.run(ConsumerApplication.class);    }}

登录后复制

配置RabbitMQ

创建application.yml,内容如下:

spring:
  rabbitmq:
    host: localhost
    port: 5672
    virtual-host: /itcast
    username: heima
    password: heima

消息监听处理类

编写消息监听器com.itheima.rabbitmq.listener.MyListener

package com.itheima.rabbitmq.listener;import org.springframework.amqp.rabbit.annotation.RabbitListener;import org.springframework.stereotype.Component;@Componentpublic class MyListener {    /**     * 监听某个队列的消息     * @param message 接收到的消息     */    @RabbitListener(queues = "item_queue")    public void myListener1(String message){        System.out.println("消费者接收到的消息为:" + message);    }}

登录后复制

测试

在生产者工程springboot-rabbitmq-producer中创建测试类,发送消息:

package com.itheima.rabbitmq;import com.itheima.rabbitmq.config.RabbitMQConfig;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.amqp.rabbit.core.RabbitTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;@RunWith(SpringRunner.class)@SpringBootTestpublic class RabbitMQTest {    @Autowired    private RabbitTemplate rabbitTemplate;    @Test    public void test(){        rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE, "item.insert", "商品新增,routing key 为item.insert");        rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE, "item.update", "商品修改,routing key 为item.update");        rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE, "item.delete", "商品删除,routing key 为item.delete");    }}

登录后复制

先运行上述测试程序(交换机和队列才能先被声明和绑定),然后启动消费者;在消费者工程springboot-rabbitmq-consumer中控制台查看是否接收到对应消息。

SpringBoot提供了快速整合RabbitMQ的方式

基本信息再yml中配置,队列交互机以及绑定关系在配置类中使用Bean的方式配置

生产端直接注入RabbitTemplate完成消息发送

消费端直接使用@RabbitListener完成消息接收

以上就是SpringBoot整合消息队列RabbitMQ的方法是什么的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2590830.html

(0)
上一篇 2025年3月6日 16:43:14
下一篇 2025年3月6日 16:43:20

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • SpringBoot怎么整合RabbitMQ实现延迟队列

    如何保证消息不丢失 rabbitmq消息投递路径 生产者->交换机->队列->消费者 总的来说分为三个阶段。 1.生产者保证消息投递可靠性。 2.mq内部消息不丢失。 3.消费者消费成功。 什么是消息投递可靠性 简单点说就…

    编程技术 2025年3月6日
    200
  • SpringBoot怎么集成Redisson实现延迟队列

    使用场景 1、下单成功,30分钟未支付。支付超时,自动取消订单 2、订单签收,签收后7天未进行评价。订单超时未评价,系统默认好评 3、下单成功,商家5分钟未接单,订单取消 4、配送超时,推送短信提醒 …… 对于延时比较长的场景、实时性不高的…

    2025年3月6日
    200
  • PHP开发:使用 RabbitMQ 实现任务队列

    随着互联网的不断发展,网站的流量越来越大,访问量的增长带来的问题也越来越多。当用户量过大时,服务器负载会增大,这时就需要使用一些技术手段来解决这些问题。任务队列就是其中的一种方式,可以将一些耗时的操作异步执行,从而缓解服务器压力。本文将介绍…

    编程技术 2025年3月6日
    200
  • Java API 开发中使用 RabbitMQ 进行异步消息处理

    随着互联网的快速发展,异步消息处理在分布式系统中扮演着重要的角色,可以提高系统的可靠性和并发性。rabbitmq是一种开源的消息队列系统,可以快速可靠地传递消息,被广泛应用于互联网领域。本文将介绍在java api开发中如何使用rabbit…

    编程技术 2025年3月6日
    200
  • PHP实现开源RabbitMQ SDK

    rabbitmq是一种基于amqp(advanced message queuing protocol)协议的消息队列,被广泛用于解耦、异步处理等场景。而php作为一种高度流行的动态语言,也有众多开源的rabbitmq sdk可供选择。本文…

    编程技术 2025年3月6日
    200
  • PHP和RabbitMQ集成实现消息队列处理

    随着应用系统的不断扩大,消息处理已经成为了一个非常重要的工作。而为了更好地处理消息,许多应用系统都采用了消息队列技术。消息队列技术可以实现异步处理消息,将消息缓存在队列中,实现“生产者-消费者”模式,可以提高系统的可伸缩性和容错性。 而在实…

    编程技术 2025年3月6日
    200
  • PHP开发中如何使用RabbitMQ实现消息传递

    rabbitmq是一种消息队列软件,可用于在应用程序之间进行消息传递。在php开发中,使用rabbitmq可以实现异步处理任务、实现分布式系统等。本篇文章将介绍如何在php开发中使用rabbitmq实现消息传递。 一、安装RabbitMQ服…

    编程技术 2025年3月6日
    200
  • 如何使用Java开发一个基于RabbitMQ的消息队列应用

    如何使用Java开发一个基于RabbitMQ的消息队列应用 引言:消息队列是现代分布式系统中常用的一种通信机制,它可以解耦发送者和接收者,提高系统的健壮性和可扩展性。RabbitMQ是一个轻量级的、可靠的开源消息队列系统,它基于AMQP协议…

    2025年3月6日
    200
  • 如何利用React和RabbitMQ构建可靠的消息传递应用

    如何利用React和RabbitMQ构建可靠的消息传递应用 引言:现代化的应用程序需要支持可靠的消息传递,以实现实时更新和数据同步等功能。React是一种流行的JavaScript库,用于构建用户界面,而RabbitMQ是一种可靠的消息传递…

    2025年3月6日
    200
  • rabbitmq和kafka有什么区别

    rabbitmq和kafka的区别:1、语言与平台;2、消息传递模型;3、可靠性;4、性能与吞吐量;5、集群与负载均衡;6、消费模型;7、用途与场景;8、社区与生态系统;9、监控与管理;10、其他特性。详细介绍:1、语言与平台,Rabbit…

    2025年3月6日
    200

发表回复

登录后才能评论