前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >消息队列(二):AMQP

消息队列(二):AMQP

作者头像
灰子学技术
发布2023-10-30 15:28:49
2130
发布2023-10-30 15:28:49
举报
文章被收录于专栏:灰子学技术灰子学技术

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协议详解

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 灰子学技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、基本概念
  • 二、Binding的三种类型(Direct、Fanout 、Topic )
  • 三、AMQP所支持的体系结构
相关产品与服务
消息队列
腾讯云消息队列 TDMQ 是分布式架构中的重要组件,提供异步通信的基础能力,通过应用解耦降低系统复杂度,提升系统可用性和可扩展性。TDMQ 产品系列提供丰富的产品形态,包含 CKafka、RocketMQ、RabbitMQ、Pulsar、CMQ 五大产品,覆盖在线和离线场景,满足金融、互联网、教育、物流、能源等不同行业和场景的需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档