参考:http://www.rabbitmq.com/tutorials/tutorial-one-python.html
1 基本
RabbitMQ是一个消息中间件(message broker),它接受和转发消息。类似邮局的功能。
使用的术语:
Procucer-发送消息的就是生产者。
Queue-消息存储在队列中,队列就是一个大型的消息缓存。多个生产者可以将消息发送给一个队列,多个消费者可以尝试从一个队列接受数据。
Consume-消费者是等待接受消息的程序
note:producer,consumer,broker在绝大部分应用中,分布在不同的主机上。
2 第一个程序-Hello World
生产者向队列‘hello’发送消息,生产者从队列接受消息。
中间的box是queue--维持在消费者一端的消息缓存。
2.1 send.py
import pika #向一个指定地址上的broker创立连接 conncetion = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = conncetion.channel() #发送消息之前需要确认接收端队列存在 #如果发送数据到一个不存在的位置,RabbitMQ会丢掉消息 #在这里我们声明一个hello队列来投递消息 channel.queue_declare('hello') #现在发送一个消息到hello这个队列。 #在RabbitMQ中,一个消息无法直接发送带队列,而是需要通过一个exchange。 #目前只需要知道如何使用一个默认的由一个空字符串认证的exchange,它允许指定消息要发到哪个队列 #队列名在route-key参数中指定 channel.basic_publish(exchange='',routing_key='hello',body='Hello World') #退出程序之前需要确认网络缓存被清空,并且消息被投递到RabbitMQ。可以优雅地关闭连接 conncetion.close()