RabbitMQ是一个在AMQP基础上完整的,可服用的企业消息系统。他遵循Mozilla Public License开源协议。
MQ全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法。
应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。
消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。
队列的使用除去了接收和发送应用程序同时执行的要求。
RabbitMQ安装
安装配置epel源 $ rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm 安装erlang $ yum -y install erlang 安装RabbitMQ $ yum -y install rabbitmq-server
注意:service rabbitmq-server start/stop
安装API
pip install pika or easy_install pika or 源码 https://pypi.python.org/pypi/pika
使用API操作RabbitMQ
基于Queue实现生产者消费者模型
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import Queue 4 import threading 5 6 7 message = Queue.Queue(10) 8 9 10 def producer(i): 11 while True: 12 message.put(i) 13 14 15 def consumer(i): 16 while True: 17 msg = message.get() 18 19 20 for i in range(12): 21 t = threading.Thread(target=producer, args=(i,)) 22 t.start() 23 24 for i in range(10): 25 t = threading.Thread(target=consumer, args=(i,)) 26 t.start()