RabbitMQ的基本概念和模型.docx
《RabbitMQ的基本概念和模型.docx》由会员分享,可在线阅读,更多相关《RabbitMQ的基本概念和模型.docx(4页珍藏版)》请在三一办公上搜索。
1、RabbitMQ的基本概念和模型RabbitMQ是一种消息队列,用于程序间的通信。形象地说,MQ就像一个邮局,发送者将消息写入MQ,MQ负责把消息发送给接收者。RabbitMQ可支持Java, PHP, Python, Go, JavaScript, Ruby等多种语言。 几个基本概念 图1 rabbit_model RabbitMQ的基本模型如图1所示。先介绍一些术语。 生产者(producer) 在图中为P,表示消息的发送者。 交换机(exchanges) 在图中为X, 生产者发过来的消息需要经过交换机,交换机将决定将消息放到哪些队列当中。 队列 队列在图1中由红色矩形阵列表示,负责保存消
2、息和发放消息。 消费者 在图中为C,代表等待接收消息的程序。 信息流 消息是怎么从生产者传递到消费者的呢? 首先,生产者发送消息到交换机,同时发送一个key,通过这个key,交换机就知道该把消息发到哪个队列。随后交换机把消息发送到相应的队列中。由队列将消息发送给消费者。 消费者监听某些队列,当有消息过来时,就立即处理消息。 那么,接下来就有两个问题: 交换机是如何根据key来分配消息到队列? 队列怎样将消息发送给消费者? 交换机类型 这个部分将回答第一个问题。交换机如何根据key来分配消息到队列? RabbitMQ的交换机有四种类型:direct, topic, headers, fanout
3、 fanout fanout交换机就跟广播一样,对消息不作选择地发给所有绑定的队列。以图1为例,两个队列都将收到消息。 direct 图2 direct 在direct模式里,交换机和队列之间绑定了一个key,只有消息的key与绑定了的key相同时,交换机才会把消息发给该队列。如图2所示,消息的key为orange时,消息将进入队列Q1;key为black或者green时,消息将进入队列Q2。若消息的key是其他字符串,被交换机直接遗弃。 图3 多重绑定 同时,交换机支持多重绑定,多个队列可以以相同的key与交换机绑定。如图3所示,当消息的key为black时,消息将进入Q1和Q2. topi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RabbitMQ 基本概念 模型

链接地址:https://www.31ppt.com/p-3165048.html