简介:RabbitMQ是一款开源的消息队列中间件,广泛应用于分布式系统、集成系统、子系统之间的对接等场景。本文将通过实际应用和实践经验,介绍RabbitMQ的基本概念、安装配置、使用方法和进阶技巧,帮助读者快速掌握RabbitMQ的核心技能。
一、RabbitMQ简介
RabbitMQ是一款开源的消息队列中间件,基于AMQP(高级消息队列协议)标准开发。它支持多种消息协议和传输协议,能够实现可靠的消息传递、消息持久化、消息路由等功能。RabbitMQ广泛应用于分布式系统、集成系统、子系统之间的对接等场景,提供了一种可靠的消息处理机制,使得不同系统之间可以解耦、异步地通信。
二、安装配置
import pikacredentials = pika.PlainCredentials('username', 'password') # 替换为实际用户名和密码parameters = pika.ConnectionParameters('localhost', 5672, '/', credentials) # 替换为实际主机名、端口和虚拟主机名connection = pika.BlockingConnection(parameters)channel = connection.channel()channel.queue_declare(queue='hello') # 声明一个队列名称message = 'Hello, RabbitMQ!' # 要发送的消息内容channel.basic_publish(exchange='', routing_key='hello', body=message) # 发送消息到队列中connection.close()
在上述示例中,我们首先建立与RabbitMQ服务器的连接,然后声明一个队列,并定义一个回调函数来处理接收到的消息。最后,我们调用
import pikacredentials = pika.PlainCredentials('username', 'password') # 替换为实际用户名和密码parameters = pika.ConnectionParameters('localhost', 5672, '/', credentials) # 替换为实际主机名、端口和虚拟主机名connection = pika.BlockingConnection(parameters)channel = connection.channel()channel.queue_declare(queue='hello') # 声明一个队列名称def callback(ch, method, properties, body): # 定义回调函数,用于处理接收到的消息print(f'Received {body}')channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True) # 开始消费消息while True:channel.wait_for_pending_consumers() # 等待处理完所有待处理的消息后退出程序connection.close()
basic_consume方法开始消费消息,并使用wait_for_pending_consumers方法等待处理完所有待处理的消息后退出程序。durable=True来实现。