SpringBoot整合RabbitMQ实战:发送接收、序列化与AmqpAdmin
12 浏览量
更新于2024-08-28
收藏 696KB PDF 举报
本文主要介绍了如何在SpringBoot项目中整合RabbitMQ,包括RabbitMQ的基本概念、依赖引入、配置设置、以及通过RabbitTemplate发送和接收消息的使用方法。
一、RabbitMQ简介
RabbitMQ是一款由LShift公司开发的开源消息队列系统,它基于Advanced Message Queuing Protocol (AMQP)标准实现。RabbitMQ以其高性能、健壮性和可扩展性闻名,由Erlang编程语言构建,保证了高稳定性和可靠性。
二、RabbitMQ的使用
1、引入依赖
在SpringBoot项目中整合RabbitMQ,首先需要在项目中添加相应的依赖。如果使用Spring Initializer创建项目,可以选择包含RabbitMQ的模块;若手动配置,可以将以下依赖添加到pom.xml文件中:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
```
2、配置连接信息
接着,在application.properties或application.yml文件中配置RabbitMQ服务器的相关信息,如主机地址、用户名、密码、端口和虚拟主机地址:
```properties
spring.rabbitmq.host=111.111.111.111
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.port=5672
spring.rabbitmq.virtual-host=/
```
SpringBoot会自动配置ConnectionFactory和RabbitTemplate,ConnectionFactory用于创建与RabbitMQ服务器的连接,RabbitTemplate则用于发送和接收消息。
3、RabbitTemplate的使用
RabbitTemplate是SpringBoot与RabbitMQ交互的核心工具,它提供了发送和接收消息的API。在需要操作消息的地方注入RabbitTemplate,例如:
```java
@Autowired
private RabbitTemplate rabbitTemplate;
```
- 发送消息:
- 单播模式(点对点):首先确定要使用的交换器和绑定的路由键。RabbitTemplate提供多种发送消息的方法,如使用`convertAndSend()`将对象自动序列化后发送:
```java
// 路由键,可以根据实际情况动态指定
String routingKey = "your-routing-key";
// 需要发送的对象
YourObject obj = new YourObject();
// 将对象发送到RabbitMQ
rabbitTemplate.convertAndSend(routingKey, obj);
```
- 接收消息:
- 可以通过实现`MessageListener`接口或使用`SimpleMessageListenerContainer`来接收消息。例如,创建一个消息监听器:
```java
@Component
public class MyMessageListener implements MessageListener {
@Override
public void onMessage(Message message) {
// 处理接收到的消息
YourObject obj = (YourObject) message.getBody();
// ...
}
}
```
并在配置类中注册监听器:
```java
@Configuration
public class RabbitConfig {
@Bean
public SimpleMessageListenerContainer container(RabbitTemplate rabbitTemplate, MyMessageListener listener) {
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setConnectionFactory(rabbitTemplate.getConnectionFactory());
container.setMessageListener(listener);
// 设置其他配置,如队列名称、消费者数量等
return container;
}
}
```
三、AmqpAdmin的使用
AmqpAdmin是RabbitMQ的管理组件,可以用来声明队列、交换器等。例如,创建一个队列:
```java
@Autowired
private AmqpAdmin amqpAdmin;
public void createQueue(String queueName) {
Queue queue = new Queue(queueName, true); // durable队列
amqpAdmin.declareQueue(queue);
}
```
总结,SpringBoot整合RabbitMQ主要涉及RabbitMQ的依赖引入、配置设置,以及通过RabbitTemplate和AmqpAdmin进行消息的发送、接收和管理。这种方式使得在SpringBoot应用中集成消息队列变得简单高效。
132 浏览量
2021-05-27 上传
2021-05-02 上传
2021-05-16 上传
2021-03-16 上传
2021-05-17 上传
2021-02-14 上传
2019-06-27 上传
weixin_38599545
- 粉丝: 7
- 资源: 935
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器