SpringBoot 整合 RabbitMQ

当我们在构建分布式系统时,消息队列成为了一个不可或缺的组件,用于解耦系统中的不同部分,提高系统的可靠性和可扩展性。Spring Boot 提供了良好的支持,使得与消息队列的集成变得相对简单。在本篇博客中,我们将讨论如何使用 Spring Boot 整合 RabbitMQ,一个功能强大的开源消息代理。

步骤一:准备工作

首先,确保你已经有一个运行 RabbitMQ 的实例。你可以在官方网站 RabbitMQ Download 下载并安装 RabbitMQ。

步骤二:创建 Spring Boot 项目

使用 Spring Initializer 创建一个新的 Spring Boot 项目。选择 Maven 或 Gradle 作为构建工具,添加 "Spring Web" 和 "RabbitMQ" 依赖。

步骤三:配置 RabbitMQ 连接信息

在 application.properties 或 application.yml 文件中,添加 RabbitMQ 的连接信息。

properties 复制代码
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

步骤四:创建消息生产者

创建一个简单的消息生产者类,用于发送消息到 RabbitMQ。

java 复制代码
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class RabbitMQProducer {

    @Autowired
    private AmqpTemplate amqpTemplate;

    public void send(String message) {
        amqpTemplate.convertAndSend("exchange", "routingKey", message);
        System.out.println("Message sent: " + message);
    }
}

步骤五:创建消息消费者

创建一个消息消费者类,用于从 RabbitMQ 接收消息。

java 复制代码
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
public class RabbitMQConsumer {

    @RabbitListener(queues = "queue")
    public void receiveMessage(String message) {
        System.out.println("Message received: " + message);
    }
}

步骤六:测试消息发送与接收

在你的应用程序中,通过调用消息生产者的 send 方法发送消息,然后消息消费者将监听并处理收到的消息。

java 复制代码
@RestController
public class MyController {

    @Autowired
    private RabbitMQProducer rabbitMQProducer;

    @GetMapping("/send")
    public String sendMessage() {
        rabbitMQProducer.send("Hello, RabbitMQ!");
        return "Message sent successfully";
    }
}

步骤七:运行项目

运行你的 Spring Boot 项目,并访问 /send 接口,你应该能在控制台看到消息的发送和接收日志。

至此,你已经成功地将 Spring Boot 与 RabbitMQ 集成。这只是一个简单的例子,你可以根据自己的需求扩展和定制。希望这篇博客对你了解 Spring Boot 和 RabbitMQ 的整合有所帮助。

相关推荐
皮皮林55113 小时前
拒绝写重复代码,试试这套开源的 SpringBoot 组件,效率翻倍~
java·spring boot
用户908324602733 天前
Spring AI 1.1.2 + Neo4j:用知识图谱增强 RAG 检索(上篇:图谱构建)
java·spring boot
用户8307196840824 天前
Spring Boot 集成 RabbitMQ :8 个最佳实践,杜绝消息丢失与队列阻塞
spring boot·后端·rabbitmq
Java水解4 天前
Spring Boot 视图层与模板引擎
spring boot·后端
Java水解4 天前
一文搞懂 Spring Boot 默认数据库连接池 HikariCP
spring boot·后端
洋洋技术笔记4 天前
Spring Boot Web MVC配置详解
spring boot·后端
初次攀爬者5 天前
Kafka 基础介绍
spring boot·kafka·消息队列
用户8307196840825 天前
spring ai alibaba + nacos +mcp 实现mcp服务负载均衡调用实战
spring boot·spring·mcp
Java水解5 天前
SpringBoot3全栈开发实战:从入门到精通的完整指南
spring boot·后端
用户8307196840826 天前
RabbitMQ vs RocketMQ 事务大对决:一个在“裸奔”,一个在“开挂”?
后端·rabbitmq·rocketmq