JMS和AMQP的區別
JMS即Java消息服務(Java Message Service)應用程序接口,是一個Java平臺中關於面向消息中間件(MOM)的API,用於在兩個應用程序之間,或分布式系統中發送消息,進行異步通信。Java消息服務是一個與具體平臺無關的API.
AMQP,即Advanced Message Queuing Protocol,一個提供統一消息服務的應用層標準高級消息隊列協議,是應用層協議的一個開放標準,為面向消息的中間件設計。基於此協議的客戶端與消息中間件可傳遞消息,並不受客戶端/中間件不同產品,不同的開發語言等條件的限制
1 通信平臺的區別
JMS: 只允許基於JAVA實現的消息平臺的之間進行通信
AMQP: 允許多種消息協議進行通信,比如ruby的storm和java的jms都可以在AMQP上進行通信。
結論: AMQP允許多種技術同時進行協議通信
2 通信機制的區別
JMS:消息生產者和消息消費者必須知道對方的Queue
AMQP: 消息生產者和消息消費者無須知道對方的Queue,消息生產者將Exchange通過Route key和任意Queue綁定。消息消費者通過Route key從任意Queue中獲取Exchange.
3 消息傳輸機制的區別
JMS:JMS支持PTP和publis/subscribe機制,PTP只可以點對點通信,public/subscribe在一端發出請求後所有其他端收到消息
AMQP:1 所有RouteKey相同的Queue接受到數據
2 所有相同的Exchange的Queue接受到數據
3 所有wilecard的Exchange的Queue接受到數據
4 可以讓webservice等接受到數據
JMS和AMQP的區別
JMS和AMQP的區別