天天看點

AMQP協定介紹

AMQP協定介紹

AMQP,即Advanced Message Queuing Protocol,進階消息隊列協定,是應用層協定的一個開放标準,為面向消息的中間件設計。

AMQP的主要特征是面向消息、隊列、路由(包括點對點和釋出/訂閱)、可靠性、安全。

AMQP在消息提供者和用戶端的行為進行了強制規定,使得不同賣商之間真正實作了互操作能力。

JMS是早期消息中間件進行标準化的一個嘗試,它僅僅是在API級進行了規範,離建立互操作能力還差很遠。

與JMS不同,AMQP是一個Wire級的協定,它描述了在網絡上傳輸的資料的格式,以位元組為流。是以任何遵守此資料格式的工具,其建立和解釋消息,都能與其他相容工具進行互操作。

AMQP規範的版本:

0-8        是2006年6月釋出

0-9        于2006年12月釋出

0-9-1     于2008年11月釋出

0-10      于2009年下半年釋出

1.0 draft  (文檔還是草案)

AMQP的實作有:

1)OpenAMQ

AMQP的開源實作,用C語言編寫,運作于Linux、AIX、Solaris、Windows、OpenVMS。

2)Apache Qpid

Apache的開源項目,支援C++、Ruby、Java、JMS、Python和.NET。

3)Redhat Enterprise MRG

實作了AMQP的最新版本0-10,提供了豐富的特征集,比如完全管理、聯合、Active-Active叢集,有Web控制台,還有許多企業級特征,用戶端支援C++、Ruby、Java、JMS、Python和.NET。

4)RabbitMQ

一個獨立的開源實作,伺服器端用Erlang語言編寫,支援多種用戶端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支援AJAX。RabbitMQ釋出在Ubuntu、FreeBSD平台。

5)AMQP Infrastructure

Linux下,包括Broker、管理工具、Agent和用戶端。

6)?MQ

一個高性能的消息平台,在分布式消息網絡可作為相容AMQP的Broker節點,綁定了多種語言,包括Python、C、C++、Lisp、Ruby等。

7)Zyre

是一個Broker,實作了RestMS協定和AMQP協定,提供了RESTful HTTP通路網絡AMQP的能力。