pip install pika使用API操作RabbitMQ基于Queue实现生产者消费者模型View Code
对于RabbitMQ来说,生产和消费不再针对内存里的一个Queue对象,而是某台服务器上的RabbitMQ Server实现的消息队列。#!/usr/bin/env python
import pika# ######################### 生产者 #########################

connection = 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()#!/usr/bin/env python
import pika# ########################## 消费者 ##########################

connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()channel.queue_declare(queue='hello')def callback(ch, method, properties, body):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()
1、acknowledgment 消息不丢失no-ack = False,如果消费者遇到情况(its channel is closed, connection is closed, or TCP connection is lost)挂掉了,那么,RabbitMQ会重新将该任务添加到队列中。消费者
2、durable   消息不丢失生产者
消费者
3、消息获取顺序默认消息队列里的数据是按照顺序被消费者拿走,例如:消费者1 去队列中获取 奇数 序列的任务,消费者1去队列中获取 偶数 序列的任务。channel.basic_qos(prefetch_count=1) 表示谁来谁取,不再按照奇偶数排列消费者
4、发布订阅发布订阅和简单的消息队列区别在于,发布订阅会将消息发送给所有的订阅者,而消息队列中的数据被消费一次便消失。所以,RabbitMQ实现发布和订阅时,会为每一个订阅者创建一个队列,而发布者发布消息时,会将消息放置在所有相关队列中。exchange type = fanout发布者
订阅者
5、关键字发送exchange type = direct之前事例,发送消息时明确指定某个队列并向其中发送消息,RabbitMQ还支持根据关键字发送,即:队列绑定关键字,发送者将数据根据关键字发送到消息exchange,exchange根据 关键字 判定应该将数据发送至指定队列。消费者
生产者
6、模糊匹配exchange type = topic在topic类型下,可以让队列绑定几个模糊的关键字,之后发送者将数据发送到exchange,exchange将传入”路由值“和 ”关键字“进行匹配,匹配成功,则将数据发送到指定队列。# 表示可以匹配 0 个 或 多个 单词
*  表示只能匹配 一个 单词
发送者路由值              队列中
old.boy.python          old.*  -- 不匹配
old.boy.python          old.#  -- 匹配
消费者
生产者

转载于:https://www.cnblogs.com/Erick-L/p/6999297.html

python 操作RabbitMQ相关推荐

  1. python操作RabbitMQ

    RabbitMQ介绍 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue)的开源实现的产品,RabbitMQ是一个消息代理,从"生产者" ...

  2. Python菜鸟之路:Python基础-Python操作RabbitMQ

    RabbitMQ简介 rabbitmq中文翻译的话,主要还是mq字母上:Message Queue,即消息队列的意思.rabbitmq服务类似于mysql.apache服务,只是提供的功能不一样.ra ...

  3. Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  4. python_day10のPython操作 RabbitMQ、Redis、Memcache

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  5. day12 Python操作rabbitmq及pymsql

    一.rabbitmq介绍 RabbitMQ简介 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消 ...

  6. 【Python之路Day12】网络篇之Python操作RabbitMQ

    基础知识 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦.消息中间件这块在我们前面的学习中,是使用python中的queue模块来提供,但这个模块仅限于在本机的内存中使用,假设 ...

  7. python操作rabbitmq操作数据

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 ##一.RabbitMQ 消息队列介绍 RabbitMQ也是消息队列,那RabbitMQ和之前python的Queue有什么区别么? py 消息队列: ...

  8. Python之操作RabbitMQ

    RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列(MQ)是一种应用程序 ...

  9. python总线 rabbitmq_python - 操作RabbitMQ

    介绍 RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列(MQ)是一种应 ...

最新文章

  1. servlet与jsp的联系与区别
  2. SAP Spartacus Table cell显示数据类型的Component决定逻辑
  3. Servlet中防止盗链的代码
  4. 天池 在线编程 双向取数(博弈DP)
  5. 动手学深度学习(PyTorch实现)(六)--卷积神经网络基础
  6. 计算机应用技术概括,计算机应用技术学科各学科方向简介
  7. max6675一直读0_女儿读完我要收藏起来的英文杂志,它让0~15岁孩子阅读无缝对接!...
  8. webpack ,require.ensure配合oclazyload 实现ng1模块懒加载
  9. 举例计算机的发展状况,计算机的发展过程教学设计.doc
  10. android局域网怎么传文件,两手机同一局域网怎么传文件
  11. angular ui-bootstrap的Datepicker Popup组件问题总结
  12. 测试内存条是否兼容软件,内存条不兼容有什么表现
  13. 【集合论】序关系 ( 偏序关系中八种特殊元素 | ① 最大元 | ② 最小元 | ③ 极大元 | ④ 极小元 | ⑤ 上界 | ⑥ 下界 | ⑦ 最小上界 上确界 | ⑧ 最小下界 下确界 )
  14. 窗外逶迤的月光如水般倾泻
  15. 主引导记录MBR的结构和作用
  16. Word排版——毕业论文专业排版3——编号+多级列表
  17. RO,RW,ZI概念
  18. Lightswitch中使用LINQ
  19. 2011高清电影《我知女人心》刘德华 巩俐 1204*576高清下载
  20. 产品经理必看电影:操作系统革命 Revolution OS

热门文章

  1. thinkphp如何通过php请求接口,thinkphp怎么做json数据接口
  2. macpro台式计算机,Mac Pro正式上架 真的可以用来刨土豆丝
  3. size_t为什么重要
  4. My97 DatePicker获取自定义日期的前一天
  5. mysql在linux下的安装(5.7版本以后)
  6. centos 安装软件
  7. GDKOI2015 Day2
  8. 西门子新款A系列手机【ZZ】
  9. iOS 键盘风格详解UIKeyboardType
  10. mac下iterm配色、半透明与样式设置