fbpx
维基百科

高级消息队列协议

高階訊息佇列協定Advanced Message Queuing Protocol(AMQP)是面向消息中间件英语Message-oriented middleware提供的开放的应用层协定,其设计目标是对于訊息的排序、路由(包括点对点和订阅-发布)、保持可靠性、保证安全性[1]。AMQP规范了訊息传递方和接收方的行为,以使訊息在不同的提供商之间实现互操作性,就像SMTPHTTPFTP等协议可以创建交互系统一样。与先前的中间件标准(如Java訊息服务)不同的是,JMS在特定的API接口层面和实现行为上进行了统一,而高階訊息佇列协定则关注于各种訊息如何以字节流的形式进行传递。因此,使用了符合协议实现的任意应用程序之间可以保持对訊息的创建、传递。

概述 编辑

高级消息队列协议是一种二进制应用层协议,用于应对广泛的面向消息应用程序的支持。协议提供了消息流控制,保证的一个消息对象的传递过程,如至多一次保证多次仅有一次等,和基于SASLTLS的身份验证和消息加密.

高级消息队列协议对于实现有如下规定

  1. 类型系统
  2. 对称的异步消息传递
  3. 标准的、可扩展的消息格式
  4. 标准的、可扩展的消息存储池

历史 编辑

高级消息队列协议最早在2003年由John O'Hara在摩根大通提出。初始设计方案在2004年中至2006年中由摩根大通发布,由iMatix公司编写协议文档和一个C语言实现。2005年摩根大通推动了包括思科系统红帽公司、iMatix、IONA技术等公司组成了一个工作组。摩根大通和红帽公司合作开发了Apache Qpid,该客户端最初由Java编写,后转向C++;Rabbit技术公司独立用Erlang开发了RabbitMQ

早先版本的协议包括版本0-8,2006年6月发布;版本0-9,2006年12月发布;版本0-9-1,2008年11月发布。这些版本与后来的1.0系列有很大的不同。

2011年8月,高级消息队列协议工作组公布其改组方案,作为OASIS成员运作。高级消息队列协议1.0版本在2011年10月30日发表。该版本在2014年四月成为ISO/IEC国际标准。[2]

版本 1.0 编辑

类型系统 编辑

协议制定了一种自描述的编码方案,以用于保证在许多广泛使用的类型之前的互操作性。其允许有类型的数据使用用额外的信息进行注释;如一个字符串可以注释成为一个URL地址。类似的,一种用于保存‘姓名’和‘地址’的键值对映射表格可以注释用来保存另外一种类型。

链路协议 编辑

协议的基本单元是 frame ()。以下有9种帧结构用来开启、控制、关闭两点之间的信息传输链路。

  • 打开(链接
  • 开始(会话
  • 附加到(链路
  • 传输
  • 数据流动
  • 消息处理
  • 分离(链路
  • 结束(会话
  • 关闭(链接

实现 编辑

高级消息队列 1.0 编辑

1.0之前 编辑

  • JORAM,Java开放源代码项目
  • RabbitMQ,一种开源消息队列服务软件,主要支持高级消息队列 0-9-1 版本,可以通过插件支持1.0版本协议

类似标准 编辑

参考文献 编辑

  1. ^ O'Hara, J. Toward a commodity enterprise middleware (PDF). ACM Queue. 2007, 5 (4): 48–55. doi:10.1145/1255421.1255424. 
  2. ^ Information technology -- Advanced Message Queuing Protocol (AMQP) v1.0 specification. ISO/IEC 19464. ISO. [1 May 2014]. (原始内容于2016-07-21). 

外部链接 编辑

    高级消息队列协议, 高階訊息佇列協定即advanced, message, queuing, protocol, amqp, 是面向消息中间件, 英语, message, oriented, middleware, 提供的开放的应用层协定, 其设计目标是对于訊息的排序, 路由, 包括点对点和订阅, 发布, 保持可靠性, 保证安全性, amqp规范了訊息传递方和接收方的行为, 以使訊息在不同的提供商之间实现互操作性, 就像smtp, http, ftp等协议可以创建交互系统一样, 与先前的中间件标准, 如java訊息. 高階訊息佇列協定即Advanced Message Queuing Protocol AMQP 是面向消息中间件 英语 Message oriented middleware 提供的开放的应用层协定 其设计目标是对于訊息的排序 路由 包括点对点和订阅 发布 保持可靠性 保证安全性 1 AMQP规范了訊息传递方和接收方的行为 以使訊息在不同的提供商之间实现互操作性 就像SMTP HTTP FTP等协议可以创建交互系统一样 与先前的中间件标准 如Java訊息服务 不同的是 JMS在特定的API接口层面和实现行为上进行了统一 而高階訊息佇列协定则关注于各种訊息如何以字节流的形式进行传递 因此 使用了符合协议实现的任意应用程序之间可以保持对訊息的创建 传递 目录 1 概述 2 历史 3 版本 1 0 3 1 类型系统 3 2 链路协议 4 实现 4 1 高级消息队列 1 0 4 2 1 0之前 5 类似标准 6 参考文献 7 外部链接概述 编辑高级消息队列协议是一种二进制应用层协议 用于应对广泛的面向消息应用程序的支持 协议提供了消息流控制 保证的一个消息对象的传递过程 如至多一次 保证多次 仅有一次等 和基于SASL和TLS的身份验证和消息加密 高级消息队列协议对于实现有如下规定 类型系统 对称的异步消息传递 标准的 可扩展的消息格式 标准的 可扩展的消息存储池历史 编辑高级消息队列协议最早在2003年由John O Hara在摩根大通提出 初始设计方案在2004年中至2006年中由摩根大通发布 由iMatix公司编写协议文档和一个C语言实现 2005年摩根大通推动了包括思科系统 红帽公司 iMatix IONA技术等公司组成了一个工作组 摩根大通和红帽公司合作开发了Apache Qpid 该客户端最初由Java编写 后转向C Rabbit技术公司独立用Erlang开发了RabbitMQ 早先版本的协议包括版本0 8 2006年6月发布 版本0 9 2006年12月发布 版本0 9 1 2008年11月发布 这些版本与后来的1 0系列有很大的不同 2011年8月 高级消息队列协议工作组公布其改组方案 作为OASIS成员运作 高级消息队列协议1 0版本在2011年10月30日发表 该版本在2014年四月成为ISO IEC国际标准 2 版本 1 0 编辑类型系统 编辑 协议制定了一种自描述的编码方案 以用于保证在许多广泛使用的类型之前的互操作性 其允许有类型的数据使用用额外的信息进行注释 如一个字符串可以注释成为一个URL地址 类似的 一种用于保存 姓名 和 地址 的键值对映射表格可以注释用来保存另外一种类型 链路协议 编辑 协议的基本单元是 frame 帧 以下有9种帧结构用来开启 控制 关闭两点之间的信息传输链路 打开 链接 开始 会话 附加到 链路 传输 数据流动 消息处理 分离 链路 结束 会话 关闭 链接 实现 编辑高级消息队列 1 0 编辑 Apache Qpid Apache软件基金会的一个开源项目 Apache ActiveMQ Apache软件基金会的一个开源项目1 0之前 编辑 JORAM Java开放源代码项目 RabbitMQ 一种开源消息队列服务软件 主要支持高级消息队列 0 9 1 版本 可以通过插件支持1 0版本协议类似标准 编辑流文本定向消息协议 STOMP 英语 Streaming Text Oriented Messaging Protocol 由Codehaus开发 基于文本的消息的传输协议 使用类似JMS的 目的地 语义 可扩展消息与存在协议 XMPP 一种基于XML的开放式即时通信协议 消息队列遥测传输 MQTT 一种轻量级订阅 发布协议参考文献 编辑 O Hara J Toward a commodity enterprise middleware PDF ACM Queue 2007 5 4 48 55 doi 10 1145 1255421 1255424 Information technology Advanced Message Queuing Protocol AMQP v1 0 specification ISO IEC 19464 ISO 1 May 2014 原始内容存档于2016 07 21 外部链接 编辑https web archive org web 20200513142519 http www amqp org 取自 https zh wikipedia org w index php title 高级消息队列协议 amp oldid 70025030, 维基百科,wiki,书籍,书籍,图书馆,

    文章

    ,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。