【RabbitMQ】| Lion带你 (超详细) 从0到1使用SpringBoot操作RabbitMQ

命运对每个人都是一样的,不一样的是各自的努力和付出不同,付出的越多,努力的越多,得到的回报也越多,在你累的时候请看一下身边比你成功却还比你更努力的人,这样,你就会更有动力。

导读:本篇文章讲解 【RabbitMQ】| Lion带你 (超详细) 从0到1使用SpringBoot操作RabbitMQ,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

一. 🦁 前言

spring Boot操作RabbitMQ是一种非常有用的技术,它可以提高应用程序的性能、可靠性和可伸缩性,为开发人员提供更好的开发和维护体验。下面是它的一些优点:

  1. 提高应用程序的可靠性和稳定性。RabbitMQ作为一种基于消息传递的中间件,可以将消息传递给应用程序,从而避免了高流量压力下的系统崩溃。

  2. 提高应用程序的并发性能。RabbitMQ可以作为一种异步消息传递机制,与Spring Boot配合使用可以提高应用程序的并发性能,实现高性能分布式系统。

  3. 实现应用程序的解耦。应用程序与RabbitMQ之间的通信是通过消息队列进行的,从而实现了应用程序的解耦,使得应用程序的开发和维护变得更加容易。

  4. 为应用程序提供大规模数据的处理和传输能力。RabbitMQ可以处理大规模数据的传输和处理,使得应用程序可以更加高效地处理大量数据。

  5. 提高应用程序的可伸缩性。RabbitMQ可以实现应用程序的水平扩展,从而让应用程序可以扩展到更多的服务器和节点上,以处理更大的数据量。

二. 🦁 springboot操作RabbitMQ

Spring Boot操作RabbitMQ是一种非常有用的技术,它可以提高应用程序的性能、可靠性和可伸缩性,为开发人员提供更好的开发和维护体验。以下是一些优点:

  1. 提高应用程序的可靠性和稳定性。RabbitMQ作为一种基于消息传递的中间件,可以将消息传递给应用程序,从而避免了高流量压力下的系统崩溃。

  2. 提高应用程序的并发性能。RabbitMQ可以作为一种异步消息传递机制,与Spring Boot配合使用可以提高应用程序的并发性能,实现高性能分布式系统。

  3. 实现应用程序的解耦。应用程序与RabbitMQ之间的通信是通过消息队列进行的,从而实现了应用程序的解耦,使得应用程序的开发和维护变得更加容易。

  4. 为应用程序提供大规模数据的处理和传输能力。RabbitMQ可以处理大规模数据的传输和处理,使得应用程序可以更加高效地处理大量数据。

  5. 提高应用程序的可伸缩性。RabbitMQ可以实现应用程序的水平扩展,从而让应用程序可以扩展到更多的服务器和节点上,以处理更大的数据量。

Ⅰ. 前期准备工作

1. 创建项目(不细说)

2. 添加依赖

<!-- RabbitMQ起步依赖 -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

3. 编写配置文件

spring:
  rabbitmq:
    host: 120.79.50.65
    port: 5672
    username: lion
    password: lion
    virtual-host: /

Ⅱ. 创建队列和交换机

image-20230411212212204

SpringBoot整合RabbitMQ时,需要在配置类创建队列和交换机并且交换机绑定队列,(以创建topic模式为例)写法如下:

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 RabbitConfig {
//    交换机名
    private final String EXCHANGE_NAME = "boot_topic_exchange";
//    队列名
    private final String QUEUE_NAME = "boot_queue";


    // 创建交换机
    @Bean("bootExchange")
    public Exchange getExchange() {
        return ExchangeBuilder
                .topicExchange(EXCHANGE_NAME) // 交换机类型
                .durable(true) // 是否持久化
                .build();
    }


    // 创建队列
    @Bean("bootQueue")
    public Queue getMessageQueue() {
        return new Queue(QUEUE_NAME); // 队列名
    }


    // 交换机绑定队列
    @Bean
    public Binding bindMessageQueue(@Qualifier("bootExchange") Exchange exchange, @Qualifier("bootQueue") Queue queue) {
        return BindingBuilder
                .bind(queue)
                .to(exchange)
                .with("#.message.#")
                .noargs();
    }
}

Ⅲ. 创建生产者

@SpringBootTest
class Rabbitmq3ApplicationTests {

   @Autowired
   private RabbitTemplate rabbitTemplate;

   @Test
   void contextLoads() {
      /**
       * 发送消息
       * 参数1:交换机
       * 参数2:路由key
       * 参数3:要发送的消息
       */
      rabbitTemplate.convertAndSend("boot_topic_exchange","message","双十一开始了");
   }

}

Ⅳ. 创建消费者

一般来说,消费者和生产者不会在同一个项目中,所以这里创建另外一个项目来创建消费者,也不需要创建队列和交换机,直接监听队列就行。

import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
public class Consumer {
//    监听队列
    @RabbitListener(queues = "boot_queue")
    public void listenMessage(String message){
        System.out.println("接收消息:"+message);
    }
}

image-20230412152426548

三. 🦁 总结

本文章总结了SpringBoot操作RabbitMQ的各种过程,希望对您有帮助哦!!!咱们下期见!😄

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

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/143131.html

(0)

相关推荐

  • 【LeetCode】23.217_Contains Duplicate · 存在重复元素

    有目标就不怕路远。年轻人.无论你现在身在何方.重要的是你将要向何处去。只有明确的目标才能助你成功。没有目标的航船.任何方向的风对他来说都是逆风。因此,再遥远的旅程,只要有目标.就不怕路远。没有目标,哪来的劲头?一车尔尼雷夫斯基

    导读:本篇文章讲解 【LeetCode】23.217_Contains Duplicate · 存在重复元素,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    后端漫谈 2023年4月19日
    00
  • 若依集成CIM(即时推送系统)实现将服务端修改为SpringBoot+Vue前后端分离版(文末见代码下载)

    生活中,最使人疲惫的往往不是道路的遥远,而是心中的郁闷;最使人痛苦的往往不是生活的不幸,而是希望的破灭;最使人颓废的往往不是前途的坎坷,而是自信的丧失;最使人绝望的往往不是挫折的打击,而是心灵的死亡。所以我们要有自己的梦想,让梦想的星光指引着我们走出落漠,走出惆怅,带着我们走进自己的理想。

    导读:本篇文章讲解 若依集成CIM(即时推送系统)实现将服务端修改为SpringBoot+Vue前后端分离版(文末见代码下载),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    后端漫谈 2023年4月20日
    00
  • 【SpringBoot源码剥析】| 自动配置原理

    命运对每个人都是一样的,不一样的是各自的努力和付出不同,付出的越多,努力的越多,得到的回报也越多,在你累的时候请看一下身边比你成功却还比你更努力的人,这样,你就会更有动力。

    导读:本篇文章讲解 【SpringBoot源码剥析】| 自动配置原理,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    后端漫谈 2023年5月14日
    00
  • 猿创征文 | Java知识【面向对象一】

    导读:本篇文章讲解 猿创征文 | Java知识【面向对象一】,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    后端漫谈 2023年3月1日
    00
  • PostgreSQL中的索引

    有目标就不怕路远。年轻人.无论你现在身在何方.重要的是你将要向何处去。只有明确的目标才能助你成功。没有目标的航船.任何方向的风对他来说都是逆风。因此,再遥远的旅程,只要有目标.就不怕路远。没有目标,哪来的劲头?一车尔尼雷夫斯基

    导读:本篇文章讲解 PostgreSQL中的索引,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    后端漫谈 2023年4月19日
    00
  • SpringCloud 组件Gateway服务网关【全局过滤器】

    导读:本篇文章讲解 SpringCloud 组件Gateway服务网关【全局过滤器】,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    后端漫谈 2023年3月1日
    00
  • Javascript知识【JSON】

    导读:本篇文章讲解 Javascript知识【JSON】,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    后端漫谈 2023年3月1日
    00
  • 解决Java连接PostgreSQL中数组类型(Array)的传参问题

    有目标就不怕路远。年轻人.无论你现在身在何方.重要的是你将要向何处去。只有明确的目标才能助你成功。没有目标的航船.任何方向的风对他来说都是逆风。因此,再遥远的旅程,只要有目标.就不怕路远。没有目标,哪来的劲头?一车尔尼雷夫斯基

    导读:本篇文章讲解 解决Java连接PostgreSQL中数组类型(Array)的传参问题,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    后端漫谈 2023年4月19日
    00
  • Geoserver怎样设置地图shp文件为相对路径,可轻松复制移植

    生活中,最使人疲惫的往往不是道路的遥远,而是心中的郁闷;最使人痛苦的往往不是生活的不幸,而是希望的破灭;最使人颓废的往往不是前途的坎坷,而是自信的丧失;最使人绝望的往往不是挫折的打击,而是心灵的死亡。所以我们要有自己的梦想,让梦想的星光指引着我们走出落漠,走出惆怅,带着我们走进自己的理想。

    导读:本篇文章讲解 Geoserver怎样设置地图shp文件为相对路径,可轻松复制移植,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    后端漫谈 2023年4月20日
    00
  • 【操作向】eclipse如何进行特定范围内的某个内容的搜索

    有目标就不怕路远。年轻人.无论你现在身在何方.重要的是你将要向何处去。只有明确的目标才能助你成功。没有目标的航船.任何方向的风对他来说都是逆风。因此,再遥远的旅程,只要有目标.就不怕路远。没有目标,哪来的劲头?一车尔尼雷夫斯基

    导读:本篇文章讲解 【操作向】eclipse如何进行特定范围内的某个内容的搜索,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    后端漫谈 2023年4月19日
    00

发表回复

登录后才能评论