您的位置:首页 > 编程语言 > Python开发

python操作RabbiMQ

2016-01-22 22:03 274 查看
RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循MozillaPublicLicense开源协议。

MQ全称为MessageQueue,消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

puthon操作rabbitMQ的模块名为:pika

https://github.com/pika/pika

在操作rabbitMQ之前,先通过Queue理解生产者消费者模型

#!/usr/bin/envpython
#_*_coding:utf-8_*_

importpika

connection=pika.BlockingConnection(pika.ConnectionParameters(
host='192.168.1.108'))
channel=connection.channel()

channel.exchange_declare(exchange='topic_logs',
type='topic')#声明类型为direct名称为import的exchange

result=channel.queue_declare(exclusive=True)
queue_name=result.method.queue#生成一个随机名的队列

channel.queue_bind(exchange='topic_logs',
queue=queue_name,
routing_key="Nice.#")#将队列与exchange绑定,并声明关键字#代表只能匹配0个或者多个

print('[*]Waitingforlogs.ToexitpressCTRL+C')

defcallback(ch,method,properties,body):
print("[x]%r:%r"%(method.routing_key,body))

channel.basic_consume(callback,
queue=queue_name,
no_ack=True)

channel.start_consuming()


订阅者2
routing_key="Nice.#"


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: