使用RabbitMQ发送消息简单队列
时间: 2025-01-07 17:02:29 浏览: 5
### 使用RabbitMQ实现简单队列的消息发送
对于希望了解如何利用RabbitMQ实现简单的消息队列并进行消息发送的需求,下面提供了一个Python环境下的实例教程。
#### 准备工作
确保已经安装了`pika`库,这是用于连接和操作RabbitMQ的一个流行客户端库。可以通过pip命令来完成安装:
```bash
pip install pika
```
#### 发送端代码示例
创建一个名为 `send.py` 的文件,在其中编写如下代码片段以定义消息生产者的行为:
```python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 声明queue
channel.queue_declare(queue='hello')
message = 'Hello World!'
channel.basic_publish(exchange='',
routing_key='hello',
body=message)
print(f" [x] Sent '{message}'")
connection.close()
```
这段脚本首先建立了与本地运行的RabbitMQ服务器之间的连接,并声明了一个名称为`'hello'`的队列[^1]。接着向该队列中发布了一条字符串形式的消息 `'Hello World!'` 。最后关闭了连接。
#### 接收端代码示例
同样地,创建另一个名为 `receive.py` 的文件作为消费者逻辑部分:
```python
import pika
import time
def callback(ch, method, properties, body):
print(f" [x] Received {body}")
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
```
此接收程序会监听来自相同队列的消息,并每当收到新消息时调用回调函数打印出来。注意这里设置了自动应答模式(`auto_ack=True`)以便简化流程;实际应用中可能需要更精细控制何时确认已成功处理某条消息。
通过上述两个Python脚本可以构建起最基础的一对一消息传递机制——即所谓的“简单队列”。先启动接收方再执行发送方可观察到预期效果。
阅读全文