赞
踩
RabbitMQ是一个开源的消息代理软件,可以用于构建分布式系统。它实现了高级消息队列协议(AMQP),并提供了可靠的消息传递机制、灵活的路由、消息确认机制等。RabbitMQ支持多种编程语言,如Java、Python、Ruby等,并提供了多种客户端库,如Spring AMQP、Pika、Bunny等。
连接RabbitMQ需要指定主机名、端口号、虚拟主机、用户名和密码等参数。其中,虚拟主机是RabbitMQ中用于隔离不同应用程序的逻辑概念,相当于数据库中的schema。以下是创建RabbitMQ连接的代码示例:
import pika # 创建连接参数 credentials = pika.PlainCredentials('guest', 'guest') parameters = pika.ConnectionParameters('localhost', 5672, '/', credentials) # 创建连接 connection = pika.BlockingConnection(parameters) |
在RabbitMQ中,消息发送到队列中,消费者从队列中获取消息并进行处理。发送消息需要指定队列名称、消息内容等参数。以下是发送消息到队列的代码示例:
import pika # 创建连接 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(" [x] Sent 'Hello World!'") # 关闭连接 connection.close() |
消费者从队列中获取消息并进行处理。获取消息需要指定队列名称、消息处理函数等参数。以下是接收消息的代码示例:
import pika # 消息处理函数 def callback(ch, method, properties, body): print(" [x] Received %r" % body) # 创建连接 connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() # 创建队列 channel.queue_declare(queue='hello') # 注册消息处理函数 channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True) # 开始接收消息 print(' [*] Waiting for messages. To exit press CTRL+C') channel.start_consuming() |
当队列不再需要时,可以删除队列。删除队列需要指定队列名称等参数。以下是删除队列的代码示例:
import pika # 创建连接 connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() # 删除队列 channel.queue_delete(queue='hello') print('Queue deleted') # 关闭连接 connection.close() |
本文介绍了RabbitMQ的创建、发送、接收、删除等使用方法。创建RabbitMQ连接需要指定主机名、端口号、虚拟主机、用户名和密码等参数;发送消息需要指定队列名称、消息内容等参数;接收消息需要指定队列名称、消息处理函数等参数;删除队列需要指定队列名称等参数。RabbitMQ提供了可靠的消息传递机制、灵活的路由、消息确认机制等,是构建分布式系统的重要组件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。