Python下使用pika简单实现RabbitMQ通信
2017-06-06 21:16
176 查看
MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。
现在介绍一下基本的RabbitMQ的通信过程:
RabbitMQ基本的通信模型是这样的,它类似于C-S通信模型,它包含一个producer (生产者),queue(消息队列)和一个consumer(消费者),生产者发送的消息只会存储在中间的消息队列中:
下面是使用ubu环境,使用python实现简易的消息通信,需要安装rabbitmq-server和pika(使用的第三方控件):
1.RabbitMQ的安装直接使用apt-get install rabbitmq-server;
2.pika可以使用pip install pika,我这样没有安装成功,我是下载pika的源码包进行安装的,地址是:https://pypi.python.org/pypi/pika/#downloads,解压后使用python setup.py install 安装即可
下面是一个简易的消息通信的代码:
client.py
server.py
最后执行python srver.py 启动服务端监听消息队列,执行python client.py启动客户端向消息队列发送消息
更多内容请查询RabbitMQ官网:http://www.rabbitmq.com/
现在介绍一下基本的RabbitMQ的通信过程:
RabbitMQ基本的通信模型是这样的,它类似于C-S通信模型,它包含一个producer (生产者),queue(消息队列)和一个consumer(消费者),生产者发送的消息只会存储在中间的消息队列中:
下面是使用ubu环境,使用python实现简易的消息通信,需要安装rabbitmq-server和pika(使用的第三方控件):
1.RabbitMQ的安装直接使用apt-get install rabbitmq-server;
2.pika可以使用pip install pika,我这样没有安装成功,我是下载pika的源码包进行安装的,地址是:https://pypi.python.org/pypi/pika/#downloads,解压后使用python setup.py install 安装即可
下面是一个简易的消息通信的代码:
client.py
#!/usr/bin/env python import pika connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) #创建一个连接 channel = connection.channel() #创建通道 channel.queue_declare(queue='hello') #把消息队列的名字为hello channel.basic_publish(exchange='', routing_key='hello', body='Hello World!') #设置routing_key(消息队列的名称)和body(发送的内容) print(" [x] Sent 'Hello World!'") connection.close() #关闭连接
server.py
#!/usr/bin/env python import pika connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) #创建一个连接 channel = connection.channel() #建立通道 channel.queue_declare(queue='hello') 把消费者和queue绑定起来,生产者和queue的也是hello def callback(ch, method, properties, body): #回调函数get消息体 print(" [x] Received %r" % body) channel.basic_consume(callback, queue='hello', no_ack=True) print(' [*] Waiting for messages. To exit press CTRL+C') channel.start_consuming() #创建死循环,监听消息队列,可使用CTRL+C结束监听
最后执行python srver.py 启动服务端监听消息队列,执行python client.py启动客户端向消息队列发送消息
更多内容请查询RabbitMQ官网:http://www.rabbitmq.com/
相关文章推荐
- python下学生管理系统:从文件中读取30位学生的信息(含邮箱),并实现简单的增、删、查找、统计(邮箱使用人数)。---附程序哦!
- python —— 使用logging模块简单实现日志系统
- 使用Python的Tornado框架实现一个简单的WebQQ机器人
- 使用Python或Node创建简单web服务器和FTP服务器实现文件共享
- 使用python实现一个简单的学生信息管理系统
- 使用python多线程实现一个简单spider
- Python 使用list实现简单的集合set
- Python使用shelve模块实现简单数据存储的方法
- Python中使用摄像头实现简单的延时摄影技术
- 基于Python使用CloudSight API实现简单的图像识别(image Recognition)
- python3使用tkinter实现ui界面简单实例
- Python 使用类实现简单的计时器
- Python 使用list实现简单的堆栈
- Python使用shelve模块实现简单数据存储的方法
- 用Python实现简单的HTTP服务器(1)--使用Firebug简单分析HTTP协议
- 简单爬虫python实现02——BeautifulSoup的使用
- 借助apktool.jar工具,使用python代码简化批量反编译apk安装包的简单实现
- Python 使用list实现简单的set
- 构建垂直搜索引擎 本课程带领大家实现一个简单的垂直搜索引擎网站,使用nodejs、python、elasticsearch实现的。
- python 之 使用web.py实现一个简单的增删改查应用