SpringBoot中如何使用RabbitMq

一,RabbitMQ简介和基本概念

RabbitMQ 是一个开源的消息中间件,基于 AMQP(高级消息队列协议)实现。
它由 Erlang 语言开发,并且支持多种编程语言,包括 Java、Python、Ruby、PHP 和 C# 等,

下载并安装Erlang:
因此在安装RabbitMQ之前必须先安装并配置好Erlang环境,安装完成后,需要将Erlang的bin目录添加到系统的PATH环境变量中,这样可以在命令行中直接运行erl命令来验证Erlang是否安装成功;

下载并安装RabbitMQ:
访问RabbitMQ的官方网站,下载最新版本的RabbitMQ安装包,解压下载的安装包,找到安装程序并运行;

启动RabbitMQ服务:
安装完成后,进入RabbitMQ的安装目录下的sbin文件夹,打开命令行窗口,
输入以下命令启动RabbitMQ服务: rabbitmq-server.bat 

配置和使用RabbitMQ:
如果需要管理界面,可以启用rabbitmq_management插件
 rabbitmq-plugins enable rabbitmq_management 
然后通过浏览器访问服务器的公网IP地址加端口(默认是15672) 来访问RabbitMQ的Web管理界面。

基本概念
1,消息总线 (Message Queue):RabbitMQ 是一种跨进程、异步的通信机制,用于上下游传递消息。通过消息系统来确保消息的可靠传递。
2,交换机 (Exchange):生产者发送消息时,需要将消息路由到一个或多个交换机。交换机根据路由规则将不同的消息路由到不同的队列。
3,队列 (Queue):消费者订阅并监听队列,当有消息过来时,就立即消费。
4,绑定 (Binding):交换机和队列之间的连接关系称为绑定。每个绑定都有一个键(Key),用于指定如何将消息从交换机路由到队列。
 

二,Springboot中如何使用RabbitMq例子,

在Spring Boot中使用RabbitMQ,你需要做以下几步:

1,添加依赖:在pom.xml中添加Spring Boot的RabbitMQ依赖。

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

2,配置RabbitMQ:在application.properties 或 application.yml 中配置RabbitMQ的连接信息。

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
# 或密码修改为自己的设置

3,配置Queue、Exchange和Binding:通过Java配置类定义队列、交换器和绑定关系。

@Configuration
public class RabbitMQConfig {
	
	// 建立指定名称的列队Bean
    @Bean
    Queue myQueue() {
        return new Queue("myQueue", true);
    }
 
	// 建立指定名称的交换机Bean
    @Bean
    DirectExchange myExchange() {
        return new DirectExchange("myExchange");
    }
 
	// 建立指定名称的绑定(为列队和交换机),
	// 以便指定生产者的消息如何从交换机路由到哪个队列中
    @Bean
    Binding binding(Queue myQueue, DirectExchange myExchange) {
        return BindingBuilder.bind(myQueue).to(myExchange).with("myRoutingKey");
    }
}

4,发送和接收消息:通过RabbitTemplate发送消息,并通过@RabbitListener注解的方法接收消息。

// 消息生产者
@Service
public class RabbitMQService {
 
    @Autowired
    private RabbitTemplate rabbitTemplate;
 
    public void sendMessage(String message) {
        rabbitTemplate.convertAndSend("myExchange", "myRoutingKey", message);
    }
}
// 消息消费者
@Component
public class RabbitMQListener {
 
    @RabbitListener(queues = "myQueue")
    public void receiveMessage(String message) {
        System.out.println("Received message: " + message);
    }
}

5,确保你的Spring Boot应用程序启动类上有 @EnableRabbit 注解。

@SpringBootApplication
@EnableRabbit
public class MyApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

以上步骤提供了一个简单的RabbitMQ集成示例。根据具体需求,你可能需要进一步配置消息确认、事务、消费者组、消息转换等高级特性,欢迎拍砖讨论...

相关推荐

  1. SpringBoot如何使用RabbitMq

    2024-07-22 23:24:03       12 阅读
  2. Springboot-RabbitMQ 消息队列使用

    2024-07-22 23:24:03       20 阅读
  3. SpringBoot项目如何使用校验工具

    2024-07-22 23:24:03       32 阅读
  4. RabbitMQ 如何使用延迟队列

    2024-07-22 23:24:03       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 23:24:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 23:24:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 23:24:03       45 阅读
  4. Python语言-面向对象

    2024-07-22 23:24:03       55 阅读

热门阅读

  1. 【Python】Pandas简要教程

    2024-07-22 23:24:03       16 阅读
  2. 0基础认识C语言(函数)

    2024-07-22 23:24:03       20 阅读
  3. Gradle构建加速:自定义缓存策略全解析

    2024-07-22 23:24:03       14 阅读
  4. 2024.7.22

    2024-07-22 23:24:03       12 阅读
  5. Webpack 5 Tree Shaking与Module Federation

    2024-07-22 23:24:03       15 阅读
  6. MUX-VLAN基本概述

    2024-07-22 23:24:03       17 阅读
  7. 探索特征降维的奥秘:sklearn中的分层方法

    2024-07-22 23:24:03       12 阅读
  8. 学习数据处理的三要点

    2024-07-22 23:24:03       14 阅读
  9. Mojo模型与A/B测试:数据驱动决策的科学

    2024-07-22 23:24:03       17 阅读
  10. 降维与选择:用Scikit-Learn精炼数据特征的艺术

    2024-07-22 23:24:03       14 阅读