中间件——消息队列 MQ (Messges Queue)
消息队列(MQ)是一种软件组件,它允许两个软件系统之间进行异步通信。这种通信方式可以解耦发送和接收方,同时可以在高负载时缓存和分配请求。
以下是一个使用Python中的pika
库来连接和使用RabbitMQ消息队列的基本例子:
import pika
# 连接到RabbitMQ服务器
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 声明一个队列,如果队列不存在会被创建
channel.queue_declare(queue='hello')
# 定义回调函数来处理消息
def callback(ch, method, properties, body):
print(f"Received {body.decode()}")
# 告诉RabbitMQ使用callback函数接收信息
channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)
print('Waiting for messages. To exit press CTRL+C')
# 开始接收信息,并等待信息
channel.start_consuming()
在这个例子中,我们首先连接到RabbitMQ服务器,声明一个名为'hello'的队列,然后定义一个回调函数来处理接收到的消息。最后,我们开始监听队列中的消息。
发送消息的代码类似:
import pika
# 连接到RabbitMQ服务器
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 声明一个队列,如果队列不存在会被创建
channel.queue_declare(queue='hello')
# 发送消息
channel.basic_publish(exchange='',
routing_key='hello',
body='Hello World!')
print("Sent 'Hello World!'")
# 关闭连接
connection.close()
在这个例子中,我们连接到RabbitMQ服务器,声明一个队列,发送一条消息,然后关闭连接。
评论已关闭