python 操作RabbitMQ
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相关推荐
- python操作RabbitMQ
RabbitMQ介绍 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue)的开源实现的产品,RabbitMQ是一个消息代理,从"生产者" ...
- Python菜鸟之路:Python基础-Python操作RabbitMQ
RabbitMQ简介 rabbitmq中文翻译的话,主要还是mq字母上:Message Queue,即消息队列的意思.rabbitmq服务类似于mysql.apache服务,只是提供的功能不一样.ra ...
- Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...
- python_day10のPython操作 RabbitMQ、Redis、Memcache
Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...
- day12 Python操作rabbitmq及pymsql
一.rabbitmq介绍 RabbitMQ简介 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消 ...
- 【Python之路Day12】网络篇之Python操作RabbitMQ
基础知识 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦.消息中间件这块在我们前面的学习中,是使用python中的queue模块来提供,但这个模块仅限于在本机的内存中使用,假设 ...
- python操作rabbitmq操作数据
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 ##一.RabbitMQ 消息队列介绍 RabbitMQ也是消息队列,那RabbitMQ和之前python的Queue有什么区别么? py 消息队列: ...
- Python之操作RabbitMQ
RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列(MQ)是一种应用程序 ...
- python总线 rabbitmq_python - 操作RabbitMQ
介绍 RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列(MQ)是一种应 ...
最新文章
- servlet与jsp的联系与区别
- SAP Spartacus Table cell显示数据类型的Component决定逻辑
- Servlet中防止盗链的代码
- 天池 在线编程 双向取数(博弈DP)
- 动手学深度学习(PyTorch实现)(六)--卷积神经网络基础
- 计算机应用技术概括,计算机应用技术学科各学科方向简介
- max6675一直读0_女儿读完我要收藏起来的英文杂志,它让0~15岁孩子阅读无缝对接!...
- webpack ,require.ensure配合oclazyload 实现ng1模块懒加载
- 举例计算机的发展状况,计算机的发展过程教学设计.doc
- android局域网怎么传文件,两手机同一局域网怎么传文件
- angular ui-bootstrap的Datepicker Popup组件问题总结
- 测试内存条是否兼容软件,内存条不兼容有什么表现
- 【集合论】序关系 ( 偏序关系中八种特殊元素 | ① 最大元 | ② 最小元 | ③ 极大元 | ④ 极小元 | ⑤ 上界 | ⑥ 下界 | ⑦ 最小上界 上确界 | ⑧ 最小下界 下确界 )
- 窗外逶迤的月光如水般倾泻
- 主引导记录MBR的结构和作用
- Word排版——毕业论文专业排版3——编号+多级列表
- RO,RW,ZI概念
- Lightswitch中使用LINQ
- 2011高清电影《我知女人心》刘德华 巩俐 1204*576高清下载
- 产品经理必看电影:操作系统革命 Revolution OS