Loading AI tools
来自维基百科,自由的百科全书
高級消息隊列協議即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]
協議制定了一種自描述的編碼方案,以用於保證在許多廣泛使用的類型之前的互操作性。其允許有類型的數據使用額外的信息進行註釋;如一個字符串可以註釋成為一個URL地址。類似的,一種用於保存『姓名』和『地址』的鍵值對映射表格可以註釋用來保存另外一種類型。
協議的基本單元是 frame (幀)。以下有9種幀結構用來開啟、控制、關閉兩點之間的信息傳輸鏈路。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.