Python 通过pika连接RabbitMQ发送接收消息

发布 : 2018-08-15 分类 : python

Python 通过 pika连接 RabbitMQ发送接收消息

生产者

脚本名称: producer.py

#!/usr/bin/env python
#encoding:utf8
#author: zeping lai
# 生产者

import pika
import sys

mq_name = 'guest' #RabbitMQ的用户名
mq_pwd = 'abc123456' #RabbitMQ的密码
mq_host = 'rbmq.n1.linuxhub.cn' #RabbitMQ服务地址
mq_port = 5672 #RabbitMQ服务端口
mq_queue = 'linuxhub' #队列
mq_routing_key = 'linuxhub' #路由键
mq_body = "Hello World Linuxhu !" #生产者,发送的消息内容

#身份验证凭证
credentials = pika.PlainCredentials(mq_name, mq_pwd)

#创建连接
s_conn = pika.BlockingConnection(pika.ConnectionParameters(host=mq_host,port=mq_port,credentials=credentials))

#在连接上创建一个频道
chan = s_conn.channel()

#声明一个队列(生产者和消费者都要声明一个相同的队列,用来防止万一某一方挂了,另一方能正常运行)
chan.queue_declare(queue=mq_queue)

#发送消息
chan.basic_publish(exchange='', routing_key=mq_routing_key, body=mq_body)

print("[生产者] send '%s'") % mq_body

#关闭连接(当生产者发送完消息后,可选择关闭连接)
s_conn.close()

消费者

脚本名称:consumer.py

#!/usr/bin/env python
#encoding:utf8
#author: zeping lai
# 消费者

import pika

mq_name = 'guest' #RabbitMQ的用户名
mq_pwd = 'abc123456' #RabbitMQ的密码
mq_host = 'rbmq.n2.linuxhub.cn' #RabbitMQ服务地址
mq_port = 5672 #RabbitMQ服务端口
mq_queue = 'linuxhub' #队列

#身份验证凭证
credentials = pika.PlainCredentials(mq_name, mq_pwd)

#创建连接
s_conn = pika.BlockingConnection(pika.ConnectionParameters(host=mq_host,port=mq_port,credentials=credentials))

#在连接上创建一个频道
chan = s_conn.channel()

#声明一个队列(生产者和消费者都要声明一个相同的队列,用来防止万一某一方挂了,另一方能正常运行)
chan.queue_declare(queue=mq_queue)

#定义一个回调函数,用来接收生产者发送的消息
def callback(ch,method,properties,body):
print("[消费者] recv %s" % body)

chan.basic_consume(callback, #调用回调函数,从队列里取消息
queue=mq_queue,#指定取消息的队列名
no_ack=True) #取完一条消息后,不给生产者发送确认消息,默认是False的,即默认给rabbitmq发送一个收到消息的确认,一般默认即可

print('[消费者] waiting for msg .')

#开始循环取消息
chan.start_consuming()

本文作者 : 泽泽
原文链接 : http://www.linuxhub.cn/2018/08/15/rabbitmq-python.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹