消息队列(二):AMQP
AMQP(Advanced Message Queuing Protocol),叫做高级消息队列协议:一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的用户端与消息中间件可传递消息,并不受用户端/中间件不同产品,不同的开发语言等条件的限制。
备注:本篇只详情AMQP的少量基本概念和设计方式。
一、基本概念
AMQP主要有三部分组成,Exchange、Binding、Queue。
1.Exchange用于接受生产者发布的消息,并根据肯定的规则将消息存储到队列Queue里面。
2.Queue用于存储消息,直到消费者将所有的消息消费完为止。
3.Binding定义了Exchange和Queue之间的关联,并提供路由规则。
二、Binding的三种类型(Direct、Fanout 、Topic?)
Binding提供了Direct、Fanout 、Topic三种模型来完成Exchange与Queue的交互。
1.Direct
根据消息携带的路由键(routing key)将消息投递给对应队列。直连交换机用来解决消息的单播路由。
消息中的“routing key”假如和Binding中的“binding key”一致, Direct exchange则将message发到对应的queue中,这里的对应关系是1对1。
2.Fanout
将消息路由给绑定到它身上的所有队列,且不理睬路由键。扇形交换机用来解决消息的广播路由, 对应关系是1对多。每个发到Fanout类型Exchange的message都会分到所有绑定的queue上去。
3.Topic
通过对消息的路由键和队列到交换机的绑定模式之间的匹配,将消息路由给一个或者多个队列。主题交换机用来实现消息的多播路由。根据routing key,及通配规则,Topic exchange将分发到目标queue中。关系是多对多。
三、AMQP所支持的体系结构
存储转发(多个消息发送者,单个消息接收者)。
分布式事务(多个消息发送者,多个消息接收者)。
发布订阅(多个消息发送者,多个消息接收者)。
基于内容的路由(多个消息发送者,多个消息接收者)。
文件传输队列(多个消息发送者,多个消息接收者)。
点对点连接(单个消息发送者,单个消息接收者)。
参考资料:
百度百科:AMQP
RabbitMQ与AMQP协议
RabbitMQ与AMQP协议详解
灰子作于二零一九年五月十日。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 消息队列(二):AMQP