Python实现RabbitMQ6种消息模型的示例代码

1. RabbitMQ简介

RabbitMQ是一种可靠的消息队列系统,它基于AMQP(Advanced Message Queuing Protocol)协议,可以实现不同应用程序之间的异步通信。它适用于分布式系统架构、微服务、实时消息处理等场景。RabbitMQ具有高可用性、可扩展性和灵活性,支持多种消息模型。

2. RabbitMQ的6种消息模型

RabbitMQ支持6种消息模型,分别是:

2.1 简单模型(Simple Model)

简单模型是最基本的消息模型,包含一个生产者和一个消费者。生产者发送消息到队列,消费者从队列中接收消息并进行处理。这种模型适合于单个应用程序中的异步任务。

示例代码如下:

import pika

# 连接到RabbitMQ服务器

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

channel = connection.channel()

# 创建队列,如果队列已存在,则不进行重新创建

channel.queue_declare(queue='simple_queue')

# 发送消息到队列

channel.basic_publish(exchange='', routing_key='simple_queue', body='Hello, RabbitMQ!')

print(" [x] Sent 'Hello, RabbitMQ!'")

# 关闭连接

connection.close()

重点代码是发送消息的部分:

channel.basic_publish(exchange='', routing_key='simple_queue', body='Hello, RabbitMQ!')

在这里,我们使用了channel.basic_publish方法向名为'simple_queue'的队列发送消息。

消费者接收消息的示例代码如下:

import pika

# 连接到RabbitMQ服务器

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

channel = connection.channel()

# 创建队列,如果队列已存在,则不进行重新创建

channel.queue_declare(queue='simple_queue')

def callback(ch, method, properties, body):

# 处理收到的消息

print(" [x] Received %r" % body)

# 告诉RabbitMQ,使用callback来接收消息

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

print(' [*] Waiting for messages. To exit press CTRL+C')

# 开始循环接收消息

channel.start_consuming()

在这里,我们使用了channel.basic_consume方法指定了接收消息的回调函数callback,并使用channel.start_consuming方法开始循环接收消息。

2.2 工作队列模型(Work Queue Model)

工作队列模型中,有一个生产者和多个消费者。生产者将消息发送到队列,多个消费者同时监听队列,每个任务只会被一个消费者接收并处理。这种模型适合于分布式系统中的任务分发。

示例代码如下:

后端开发标签