高级消息队列协议高级消息队列协议即Advanced Message Queuing Protocol(AMQP)是面向消息中间件提供的开放的应用层协定,其设计目标是对于消息的排序、路由(包括点对点和订阅-发布)、保持可靠性、保证安全性[1]。AMQP规范了消息传递方和接收方的行为,以使消息在不同的提供商之间实现互操作性,就像SMTP,HTTP,FTP等协议可以创建交互系统一样。与先前的中间件标准(如Java消息服务)不同的是,JMS在特定的API接口层面和实现行为上进行了统一,而高级消息队列协议则关注于各种消息如何以字节流的形式进行传递。因此,使用了符合协议实现的任意应用程序之间可以保持对消息的创建、传递。 概述高级消息队列协议是一种二进制应用层协议,用于应对广泛的面向消息应用程序的支持。协议提供了消息流控制,保证的一个消息对象的传递过程,如至多一次、保证多次、仅有一次等,和基于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
1.0之前
类似标准
参考文献
外部链接 |
Portal di Ensiklopedia Dunia