在python中引入rabbitmq消息中间件
来源:互联网 发布:水手怕水 知乎 编辑:程序博客网 时间:2024/06/06 20:27
上周一直在研究zeromq,并且也实现了了zeromq在python和ruby之间的通信,但是如果是一个大型的企业级应用,对消息中间件的要求比较高,比如消息的持久化机制以及系统崩溃恢复等等需求,这个时候zeromq就显得有点鸡肋了,特别是消息持久化是他的的硬伤,那么怎么找一个比较适合的中间件呢?
目前市场上主流的中间件除了zeromq,还有rabbitmq,activemq等等,这两周都比较有名,一个是基于erlang,一个是基于jms,rabbitmq是AMQP(高级消息队列协议)的标准实现,对于python,ruby等语言都有比较好的支持。
好吧,那就选择他了,首先我们需要先安装它:
1$ sudo apt-get install rabbitmq-server -- 一键安装rabbitmq-server
2$ sudo apt-get install python-pip git-core -- 安装pip
3$ sudo pip install pika==0.9.8 --- 安装pika就这几步就装好啦~!~
装好了以后首先就是测试下
send.py
import pikaconnection = pika.BlockingConnection(pika.ConnectionParameters( host='localhost'))channel = connection.channel()channel.queue_declare(queue='hello')channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')print " [x] Sent 'Hello World!'"connection.close()revecive.py
import pikaconnection = pika.BlockingConnection(pika.ConnectionParameters( host='localhost'))channel = connection.channel()channel.queue_declare(queue='hello')print ' [*] Waiting for messages. To exit press CTRL+C'def callback(ch, method, properties, body): print " [x] Received %r" % (body,)channel.basic_consume(callback, queue='hello', no_ack=True)channel.start_consuming()运行下:
$ python send.py [x] Sent 'Hello World!'
$ python receive.py [*] Waiting for messages. To exit press CTRL+C [x] Received 'Hello World!'好了测试完毕了,接下来官方网站有很多例子,大家可以找找看看,一共有6中模式,掌握这6种模式基本上算是入门会用了。
- 在python中引入rabbitmq消息中间件
- 在python中引入zeromq消息中间件环境
- 消息中间件RabbitMQ
- 消息中间件之RabbitMQ
- 消息中间件RabbitMQ 初探
- 使用rabbitmq消息中间件
- rabbitMQ消息中间件
- 消息中间件 rabbitmq 级联-Shovel
- 消息中间件 rabbitmq 级联-Federation
- 消息中间件RabbitMQ-实战一
- 消息中间件以及RabbitMQ简介
- 在C#中使用消息队列RabbitMQ
- 又拍网架构 -- 前端PHP后台Python +消息中间件 RabbitMQ + 分库步骤
- 常见消息队列中间件RabbitMQ介绍
- Java消息中间件--ActiveMq,RabbitMQ,Kafka
- 消息队列中间件及RabbitMQ简介
- linux下安装Rabbitmq消息中间件
- 消息中间件中术语
- QT 5.0.2 VS2010开发环境搭建
- C#抽象类
- 榜单
- boost::asio 的同步方式
- UVALive 3890 Most Distant Point from the Sea(凸包最大内接圆)
- 在python中引入rabbitmq消息中间件
- python学习九:SocektServer学习、bisect、list的sort详解、清空字典的两种方法、zip初探
- boost::asio的异步方式
- NOSQL启蒙: What? Why? When?
- 你必须非常努力,才能看起来毫不费力
- Codeforces Round #147 (Div. 2) / 237A Free Cash (模拟)
- 解结构体、类等内存字节对齐
- 我神圣的2,3,5
- CC2530 外部中断 提醒