集成RabbitMQ+MQ常用操作

集成RabbitMQ与MQ常用操作指南⚡️

RabbitMQ作为一款开源消息代理软件,在现代分布式系统中扮演着重要角色。下面让我们一起探索如何集成RabbitMQ以及它的常用操作吧!💻

基础集成步骤️

首先需要添加RabbitMQ的Java客户端依赖:

```java
//Maven依赖

com.rabbitmq
amqp-client
5.14.2

```

建立连接的基础代码示例:

```java
ConnectionFactoryfactory=newConnectionFactory();
factory.setHost("localhost");//RabbitMQ服务器地址
factory.setUsername("guest");//默认用户名
factory.setPassword("guest");//默认密码

try(Connectionconnection=factory.newConnection();
Channelchannel=connection.createChannel()){
//在这里进行消息操作...
}catch(Exceptione){
e.printStackTrace();
}
```

常用MQ操作📨

1.声明队列📝

```java
//声明一个持久化、非排他、非自动删除的队列
channel.queueDeclare("my_queue",true,false,false,null);
```

2.发送消息✉️

```java
Stringmessage="HelloRabbitMQ!";
channel.basicPublish("","my_queue",null,message.getBytes());
System.out.println("xSent'"+message+"'");
```

3.消费消息

```java
DeliverCallbackdeliverCallback=(consumerTag,delivery)->{
StringreceivedMessage=newString(delivery.getBody(),"UTF-8");
System.out.println("xReceived'"+receivedMessage+"'");
};
channel.basicConsume("my_queue",true,deliverCallback,consumerTag->{});
```

4.消息确认机制✅

```java
//关闭自动确认,改为手动确认
channel.basicConsume("my_queue",false,deliverCallback,consumerTag->{});

//在处理完消息后手动确认
channel.basicAck(delivery.getEnvelope().getDeliveryTag(),false);
```

高级特性🚀

RabbitMQ还支持许多高级特性,如:
-交换机(Exchange)和绑定(Binding)🔄
-消息持久化💾
-死信队列☠️
-消息TTL(生存时间)
-优先级队列🔝

```java
//示例:声明一个直连交换机
channel.exchangeDeclare("my_exchange",BuiltinExchangeType.DIRECT,true);
//将队列绑定到交换机
channel.queueBind("my_queue","my_exchange","routing_key");
```

通过合理使用RabbitMQ,可以构建出高效、可靠的异步消息系统!🎯记得根据实际需求选择合适的特性和配置哦!💡

相关推荐
better_liang5 小时前
每日Java面试场景题知识点之-消息队列MQ核心场景与实战
java·面试·kafka·消息队列·rabbitmq·rocketmq·mq
小江的记录本5 小时前
【JVM虚拟机】垃圾回收GC:四种引用类型:强引用、软引用、弱引用、虚引用(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
小马爱打代码5 小时前
Spring源码 第四篇:Spring 5 源码深度拆解:AOP 全流程核心原理
java·后端·spring
better_liang6 小时前
每日Java面试场景题知识点之-SpringBoot启动流程
java·面试·springboot·源码解析·启动流程
RyFit6 小时前
Java + AI 实战:Spring AI 从入门到企业级落地
java·人工智能·spring
ServBay6 小时前
2026 Mac 本地大模型部署深度解析与混合架构指南
后端·macos·aigc
一拳一个娘娘腔7 小时前
【SRC漏洞挖掘系列】第10期:GraphQL & API 安全 —— 现代 API 的“裸奔”时代
后端·安全·graphql
ZhengEnCi7 小时前
01-如何监听接口调用情况?
java·spring boot·后端
JAVA面经实录9178 小时前
MyBatis学习体系
java·mybatis
java1234_小锋8 小时前
在 Spring AI 中如何实现函数调用(Function Calling)?请说明其基本原理和应用场景。
java·人工智能·spring