python采用pika库使用rabbitmq总结,多篇笔记和示例(转)

add by zhj:作者的几篇文章参考了Rabbitmq的Tutorials中的几篇文章。

原文:http://www.01happy.com/python-pika-rabbitmq-summary/

这一段时间学习了下rabbitmq,在学习的过程中,发现国内关于python采用pika库使用rabbitmq的资料很少,官网有这方面的资料,不过是都英文的。于是笔者结合自己的理解,就这方面内容写了一些示例,总共有七篇笔记,分享出来。

笔记依次是循序渐进的,笔记内贴出的代码笔者都实际运行过,运行系统ubuntu 12.04,rabbitmq版本是2.7.1,python版本是2.7.3。

因为笔记里提到一些名词,虽然叫法不一样,不过都是表达同样的事物,所以有必要先说明下,以免产生疑惑。主要是两个名词:

  • producer 直译为生成者,就是产生消息的东东,笔记里提到的发送者、发送端都是一个意思。如果把消息比喻成任务,也可以理解为任务分配者。
  • consumer 直译为消费者,就是接收消息的东东 ,笔记里提到的接收者、接收端都是一个意思。如果把消息比喻成任务,也可以理解为工作者。

1、ubuntu安装rabbitmq和python的使用实现

这篇主要记录了在ubuntu下安装rabbitmq服务的过程和安装python pika库的过程,并演示了单向发送消息的工作方式。

2、python使用rabbitmq实例二,工作队列

继上一篇,演示了多个接收端情况下,消息发送的工作方式。

3、python使用rabbitmq实例三,交换机

前面两篇的示例,都只使用了一个队列,消息是依次发送给绑定到该队列的接收端。如果要广播出去,就要使用交换机,本篇演示了交换机的工作方式。

4、python使用rabbitmq实例四,路由键

第三篇的消息是广播出去的,所有接收端都会接收到,如果要精确指明消息的接收端,就要使用路由键,本篇主要演示了路由键的工作方式。

5、python使用rabbitmq实例五,路由键模糊匹配

第四篇的路由键是精确匹配的,有时用需要模糊匹配,本篇主要演示了路由键模糊匹配的工作方式。

6、python使用rabbitmq实例六,远程结果返回

前面五篇的消息都是发送出去就完事了,接收端并没有将结果返回给发送端。有些情况下需要接收端将接收到的消息处理后再返回给发送端,本篇演示了这种情况的处理方式。

7、python使用rabbitmq实例七,相互关联编号correlation id

上一篇只是发送单条消息,返回的结果自然是对应该条消息,但是如果同时发出多条消息,就会返回多个结果,如何将发送的消息和返回的结果一一对应起来呢?本篇演示了correlation id的工作方式,就是用来解决这个问题的。

如果发现哪里有错误的地方或者有什么建议,欢迎大家来信交流。我的邮箱参考网站右边。

python采用pika库使用rabbitmq总结,多篇笔记和示例(转),布布扣,bubuko.com

时间: 2024-10-12 09:19:28

python采用pika库使用rabbitmq总结,多篇笔记和示例(转)的相关文章

python采用pika库使用rabbitmq(二) --工作队列

消息也可以理解为任务,消息发送者可以理解为任务分配者,消息接收者可以理解为工作者,当工作者接收到一个任务,还没完成的时候,任务分配者又发一个任务过来,那就忙不过来了,于是就需要多个工作者来共同处理这些任务,这些工作者,就称为工作队列. RabbitMQ会默认把p发的消息依次分发给各个消费者(c),跟负载均衡差不多 先启动消息生产者,然后再分别启动3个消费者,通过生产者多发送几条消息,你会发现,这几条消息会被依次分配到各个消费者身上 1 import pika 2 import sys 3 4 c

rabbitMQ实战(一)---------使用pika库实现hello world

rabbitMQ实战(一)---------使用pika库实现hello world 2016-05-18 23:29 本站整理 浏览(267) pika是RabbitMQ团队编写的官方Python AMQP库.需要先安装pika:pip3 install pika有较详细的注释,就不再详细说明了生产者代码:hello_world_producer.py: import pika,sys #connect to the rabbitmq,use the default vhost credent

自动化运维Python系列之消息队列RabbitMQ

RabbitMQ RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco .Redhat.iMatix 等联合制定了 AMQP 的

Python之操作Redis、 RabbitMQ、SQLAlchemy、paramiko、mysql

一.Redis Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原

python之路day11【RabbitMQ、Redis、Mysql】

大纲 1.RabbitMQ 2.Redis 3.Mysql 1.RabbitMQ消息队列 1.1 RabbitMQ简介 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然. AMQP的主要特征是面向消息.队列.路由(包括点对点和发布/订阅).可靠性.安全. RabbitMQ是一个开源的AMQP实现,服务器端用Erlan

Python配置第三方库Theano的曲折之路

Theano是Python的一个深度学习的第三方库,今天有同学问我怎样配置.OK,既然有需求,我就花了半天时间研究它,并完成了windows下32位和64位系统下的配置.这里在配置的过程中我走了一些弯路,在这篇文章中我会将我在配置过程中遇到的问题.出现的错误.解决的方法都完整的列出来,供大家参考,并列出直接简洁的配置方法. 一.基本情况 Theano算是Python中配置相对复杂的库了,这里先对目前的配置需求进行一个基本说明. 1.Python配置第三方库的基本方法 Python配置第三方库主要

python常用第三方库(转载)

Python标准库与第三方库详解(转载) 转载地址: http://www.codeweblog.com/python%e6%a0%87%e5%87%86%e5%ba%93%e4%b8%8e%e7%ac%ac%e4%b8%89%e6%96%b9%e5%ba%93%e8%af%a6%e8%a7%a3/ 这篇文章主要介绍了Python标准库与第三方库,需要的朋友可以参考下 本文详细罗列并说明了Python的标准库与第三方库如下,供对此有需要的朋友进行参考: Tkinter---- Python默认的

Python 时间日期库 Arrow 的安装使用

Arrow是一个专门处理时间和日期的轻量级Python库,它提供了一种合理.智能的方式来创建.操作.格式化.转换时间和日期.其设计灵感主要来源于moment.js. 为什么要设计Arrow? 从可用性角度来看,Python的标准库和低端模块都提供了完整的功能,但却无法很好地工作,开发者使用起来也比较纠结. 模块太多:日期.时间.日历.datetuil.pytz. 时区和时间戳转换很麻烦,而且容易出错. 时区是显式的,且比较简单 功能差距:ISO-8601解析.时间跨度.不够人性化 核心功能: 实

用C语音编写python的扩展模块,也就是python调c库

用C语音编写python的扩展模块,也就是python调c库   1.用C语言扩展Python的功能: http://www.ibm.com/developerworks/cn/linux/l-pythc/ 2.用C语言编写Python扩展模块: http://hi.baidu.com/jinmu190/blog/item/c5475846eee39c056a63e5f1.html 3.怎样编写python脚本的C扩展模块 http://blog.csdn.net/dengxu11/articl