Python&Rabbitmq
2019-04-19 本文已影响0人
Donald_32e5
一、类库
- Python操作rabbitmq的类库是pika
二、基本使用
- 首先粗略看下rabbitmq的基本介绍
三、Hello World
发送消息
- 首先连接到指定的mq
- 接着声明队列(用
''
来指定exchange,它会为我们指定一个默认的交换机) - 把需要发送的消息装载好,运行就开始发送
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()
接受消息
- 和之前一样,需要连接mq,并且需要确认队列已经存在
- 从队列中获取消息稍显复杂,需要一个回调函数,获取消息的时候,pika库就会调用此函数
- 接下来告诉mq这个函数会从
hello
队列中接收消息
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 确认队列
channel.queue_declare(queue='hello')
def callback(ch, method, properties, body):
print(" [x] Received %r" % body)
# 接收消息
channel.basic_consume('hello', callback, auto_ack=True)
channel.start_consuming()
四、注意
- 可以通过mq的客户端添加exchange和queue
- 在浏览器输入对应的mq所在服务器ip,如果在本机,可以用
http://localhost:15672
来访问,默认账号密码为guest\guest
-
添加exchage
= -
添加queue
- 还可以设置虚拟host,如果设置了host,再添加交换机和队列的时候,还得设置host
- 如果通过web客户端添加队列,在代码中就可以不用验证quere是否存在了