消息队列(二):AMQP

来自公众号:灰子学技术

欢迎关注:

AMQP(Advanced Message Queuing Protocol),叫做高级消息队列协议:一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。

备注:本篇只介绍AMQP的一些基本概念和设计方式。

一、基本概念

AMQP主要有三部分组成,Exchange、Binding、Queue。

1.Exchange用于接受生产者发布的消息,并根据一定的规则将消息存储到队列Queue里面。

2.Queue用于存储消息,直到消费者将所有的消息消费完为止。

3.Binding定义了Exchange和Queue之间的关联,并提供路由规则。

640?wx_fmt=png

二、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。

640?wx_fmt=png

2.Fanout

将消息路由给绑定到它身上的所有队列,且不理会路由键。扇形交换机用来处理消息的广播路由, 对应关系是1对多。每个发到Fanout类型Exchange的message都会分到所有绑定的queue上去。

640?wx_fmt=png

3.Topic

通过对消息的路由键和队列到交换机的绑定模式之间的匹配,将消息路由给一个或多个队列。主题交换机用来实现消息的多播路由。根据routing key,及通配规则,Topic exchange将分发到目标queue中。关系是多对多。

640?wx_fmt=png

三、AMQP所支持的体系结构

存储转发(多个消息发送者,单个消息接收者)。

分布式事务(多个消息发送者,多个消息接收者)。

发布订阅(多个消息发送者,多个消息接收者)。

基于内容的路由(多个消息发送者,多个消息接收者)。

文件传输队列(多个消息发送者,多个消息接收者)。

点对点连接(单个消息发送者,单个消息接收者)。

参考资料:

百度百科:AMQP

RabbitMQ与AMQP协议

RabbitMQ与AMQP协议详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值