送到RabbitMQ的内部对象Queue中去,而消费者则是从Queue队列
时间: 2024-06-21 11:00:22 浏览: 86
RabbitMQ传递对象
3星 · 编辑精心推荐
在RabbitMQ中,生产者(Producer)负责将消息(内部对象)发送到队列(Queue)中。这个过程通常通过AMQP(Advanced Message Queuing Protocol)协议完成,生产者会创建一个新的队列或者向已存在的队列发布消息。
以下是使用Python的RabbitMQ客户端pika进行简单操作的一个示例:
```python
import pika
# 创建连接
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
# 创建频道(channel)
channel = connection.channel()
# 声明队列(如果不存在则创建)
channel.queue_declare(queue='my_queue')
# 生产者发布消息
message = "Hello World!"
channel.basic_publish(exchange='', routing_key='my_queue', body=message)
print(f" [x] Sent {message}")
# 关闭连接
connection.close()
```
在这个例子中,`queue_declare`方法声明了一个名为'my_queue'的队列,`basic_publish`方法用于将消息发送到该队列。消费者(Consumer)通过监听特定的队列来接收这些消息。消费者可以使用类似的方法从队列中获取消息:
```python
def callback(ch, method, properties, body):
print(" [x] Received %r" % body)
channel.basic_consume(queue='my_queue', on_message_callback=callback, auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
```
当消息到达时,`callback`函数会被调用,处理接收到的消息。`auto_ack=True`表示接收到消息后自动确认消费,避免消息堆积。
阅读全文