小奋斗 - 轻松学习从此开始!
IT小奋斗群 QQ群:62017228

Python RabbitMQ 入门操作案例分享

   rabbitmq 入门操作

--------------------------------------------------------------------------------------------------------------------------------------

(rabbitmq的简单认识)

Rabbitmq 是一种消息队列 消息队列都会包含 producer(生产者),consumer(消费者)及broker(代理)

--------------------------------------------------------------------------------------------------------------------------------------

RabbitMQ 是信息传输的中间者。本质上,他从生产者(producers)接收消息,转发这些消息给消费者(consumers).换句话说,他能够按根据你指定的规则进行消息转发、缓冲、和持久化。

--------------------------------------------------------------------------------------------------------------------------------------

(python 入门实例)

首先需要启动rabbitmq 可查看 http://blog.csdn.net/raccoon_hzy/article/details/53893379 这个地址进行rabbitmq的安装与启动,接下来就开始入门案例

一个producer发送消息,一个接收者(consumer)接收消息,并在控制台打印出来。在这我使用了 python的 pika模块

1,消息生产者,也是消息发送端 send.py 发送完一条消息后会自动退出

import pika
import sys
reload(sys)
sys.setdefaultencoding('utf8')

# 连接到rabbitmq服务 连接远程ip打开远程端口
parameters = pika.ConnectionParameters(host='192.168.126.133', port=5672)  # host为rabbitmq所在服务器的IP地址
connection = pika.BlockingConnection(parameters)
channel = connection.channel()
# 声明消息队列 消息将在队列中进行传递
channel.queue_declare(queue='q.one.queue')
# 发送消息到hello队列exchange是交换机 能精确的将消息发送到指定的队列 routing_key 设置为队列的名称 body 将要发送的内容
channel.basic_publish(exchange='', routing_key='q.one.queue', body='Hello World!!')
print 'send Hello World!!'
# 关闭连接 释放资源
connection.close()

--------------------------------------------------------------------------------------------------------------------------------------

控制台打印出如下图时 消息发送成功

--------------------------------------------------------------------------------------------------------------------------------------

2 ,消息消费者,接受队列消息(Receive.py)

# 接受队列消息
import sys
import pika
reload(sys)
sys.setdefaultencoding('utf-8')

# 获取连接
parameters = pika.ConnectionParameters(host='192.168.126.133', port=5672) # host为rabbitmq所在服务器的IP地址
connection = pika.BlockingConnection(parameters)
channel = connection.channel()
# 声明所要获取消息的队列
channel.queue_declare('q.one.queue')
# 定义一个回调函数来处理消息
def callback(ch, method, properties, body):
    print body

# 告诉消息队列使用callback函数来处理消息
channel.basic_consume(callback, queue='q.one.queue', no_ack=True)
# 开始接受消息并进入到阻塞状态
channel.start_consuming()

--------------------------------------------------------------------------------------------------------------------------------------

控制台打印出如下图, 成功接收到消息

到此 rabbitmq python简单入门案例结束

小奋斗文章

--------------------------------------------------------------------------------------------------------------------------------------

我来评几句
登录后评论

已发表评论数(0)