首页 > 编程语言 > 详细

浅谈Python的RabbitMQ使用

时间:2021-05-30 20:18:46      阅读:18      评论:0      收藏:0      [点我收藏+]

AMQP高级消息队列协议

AMQP是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。
技术分享图片


角色

  • Client(Producer)
  • Server(vhost)
  • Client(Consumer)

消息结构

header(exchange, id, persistence) + body


常用工作模式

  • Work queues
  • Publish / Subscribe
  • Routing
  • Topics
  • RPC

Work queues

技术分享图片
生产者将消息发送到指定的队列,Rabbit将队列中的消息依次推送给消费者。
依次推送设置:prefetch_count=1
消息持久化:delivery_mode = 2
队列持久化:durable=True
消息通知:auto_ack=False / no_ack=True

Publish / Subscribe

技术分享图片
即广播模式
交换机:fanout
交换机持久化:durable=True

Routing

技术分享图片
交换机:direct

Topic

技术分享图片
交换机:topic

RPC

技术分享图片
客户端向服务端发送新消息,客户端收到消息后回复消息给客户端
Reply to:回调队列
Correlation id:每个请求的唯一标识

管理

可视化界面

技术分享图片

HTTP API

技术分享图片

参考:https://pulse.mozilla.org/api/


其他问题

  • DLX 死信队列
  • 生产端Confirm机制
  • 消费端幂等性
  • 可靠性投递

浅谈Python的RabbitMQ使用

原文:https://www.cnblogs.com/siyueliuguang/p/14828521.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!