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)

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

示例代码如下:

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签