集成RabbitMQ+MQ常用操作

集成RabbitMQ与MQ常用操作指南🚀

RabbitMQ是一个开源的消息代理和队列服务器,用于在分布式系统中存储和转发消息。下面我们将介绍如何集成RabbitMQ以及常用的MQ操作。

1.RabbitMQ集成🛠️

首先,我们需要在项目中添加RabbitMQ的依赖:

```python
Python示例
pipinstallpika
```

```java
//Java示例(Maven)

com.rabbitmq
amqp-client
5.12.0

```

2.连接RabbitMQ🔌

建立与RabbitMQ服务器的连接:

```python
importpika

connection=pika.BlockingConnection(
pika.ConnectionParameters('localhost'))
channel=connection.channel()
```

```java
//Java示例
ConnectionFactoryfactory=newConnectionFactory();
factory.setHost("localhost");
Connectionconnection=factory.newConnection();
Channelchannel=connection.createChannel();
```

3.常用MQ操作⚙️

创建队列📦

```python
channel.queue_declare(queue='hello')
```

```java
channel.queueDeclare("hello",false,false,false,null);
```

发送消息✉️

```python
channel.basic_publish(exchange='',
routing_key='hello',
body='HelloWorld!')
```

```java
channel.basicPublish("","hello",null,"HelloWorld!".getBytes());
```

接收消息📩

```python
defcallback(ch,method,properties,body):
print("xReceived%r"%body)

channel.basic_consume(queue='hello',
auto_ack=True,
on_message_callback=callback)
```

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

关闭连接🔚

```python
connection.close()
```

```java
channel.close();
connection.close();
```

4.高级特性🌟

RabbitMQ还支持:
-交换机(Exchange)路由🔀
-消息确认机制✅
-持久化消息💾
-死信队列⚰️
-集群部署🖥️🖥️🖥️

通过合理使用这些特性,可以构建出高效可靠的分布式消息系统!🎯

相关推荐
码事漫谈7 分钟前
腾讯混元 Hy4 正式版发布了
后端
Mikko78 分钟前
Redis 连接数满了服务端有错误信息吗?连接数不增加却命令超时?6.2 实测连接池、超时与大 key 怎么判定
java·spring boot·redis·后端
.Bryce.14 分钟前
从零到一开发技术名词大全:从需求分析到 AI Agent 工程
java·网络·人工智能·agent·需求分析·agent评测
SL_staff26 分钟前
JVS-APS的7个刚性约束设计:从无限产能幻觉到可执行排产的工程实践
java·spring cloud·全栈
苍何1 小时前
DeepSeek的Super-agent 设计,和我们的工程实践
后端
Patrick_Wilson2 小时前
第一次读 Go 项目:从两个源码文件弄清 package、import 和 go.mod
后端·go·编程语言
代码山河2 小时前
基本类型转换:自动类型转换与强制类型转换
java·学习·架构·教程·面向对象·项目
Patrick_Wilson2 小时前
执行 go build . 后,Go 怎样找到代码并生成程序
后端·go·编程语言
用户6919026813392 小时前
Redis 2:Redis 在怎么处理harness记忆
后端
Patrick_Wilson2 小时前
Go 变量不赋值时,为什么也有值
后端·go·编程语言