程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> activemq和jms是種什麼關系,activemqjms關系

activemq和jms是種什麼關系,activemqjms關系

編輯:JAVA綜合教程

activemq和jms是種什麼關系,activemqjms關系


JMS是一個用於提供消息服務的技術規范,它制定了在整個消息服務提供過程中的所有數據結構和交互流程。

而activemq則是消息隊列服務,是面向消息中間件(MOM)的最終實現,是真正的服務提供者。

jms 的一個標准或者說是一個協議。

通常用於企業級應用的消息傳遞。

主要有topic 消息(1 對多),queue 消息(1對1)。

activemq 是一個jms 的實現,apache 出的。

 

MQ特點:
MQ的消費-生產者模型的一個典型的代表,一端往消息隊列中不斷的寫入消息,而另一端則可以讀取或者訂閱隊列中的消息。
MQ和JMS類似,但不同的是JMS是SUN JAVA消息中間件服務的一個標准和API定義而MQ則是遵循了AMQP協議的具體實現和產品。

使用場景:
  在項目中,將一些無需即時返回且耗時的操作提取出來,進行了異步處理,而這種異步處理的方式大大的節省了服務器的請求響應時間,從而提高了系統的吞吐量。
  
JMS簡介:
  JMS即Java消息服務(Java Message Service)應用程序接口,是一個Java平台中關於面向消息中間件(MOM)的API。
  用於在兩個應用程序之間,或分布式系統中發送消息,進行異步通信。
  Java消息服務是一個與具體平台無關的API,絕大多數MOM提供商都對JMS提供支持。

  定義:
  JMS(Java Messaging Service)是Java平台上有關面向消息中間件(MOM)的技術規范,它便於消息系統中的Java應用程序進行消息交換,並且通過提供標准的產生、發送、接收消息的接口簡化企業應用的開發,翻譯為Java消息服務。
  
  簡介:
  JMS是一種與廠商無關的 API,用來訪問消息收發系統消息。

它類似於JDBC(Java DatabaseConnectivity):這裡,JDBC 是可以用來訪問許多不同關系數據庫的 API,而 JMS 則提供同樣與廠商無關的訪問方法,以訪問消息收發服務。
許多廠商目前都支持JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ,這只是幾個例子。
JMS 使您能夠通過消息收發服務(有時稱為消息中介程序或路由器)從一個 JMS 客戶機向另一個JMS客戶機發送消息。

  消息是 JMS 中的一種類型對象,由兩部分組成:報頭和消息主體。
報頭由路由信息以及有關該消息的元數據組成。消息主體則攜帶著應用程序的數據或有效負載。
根據有效負載的類型來劃分,可以將消息分為幾種類型,它們分別攜帶:
  簡單文本(TextMessage)、可序列化的對象(ObjectMessage)、屬性集合(MapMessage)、字節流(BytesMessage)、原始值流(StreamMessage),還有無有效負載的消息(Message)。

JMS和MQ的關系:
  JMS是一個用於提供消息服務的技術規范,它制定了在整個消息服務提供過程中的所有數據結構和交互流程。
而MQ則是消息隊列服務,是面向消息中間件(MOM)的最終實現,是真正的服務提供者;MQ的實現可以基於JMS,也可以基於其他規范或標准。
  
支持JMS的開源MQ:
  目前選擇的最多的是ActiveMQ。
  ActiveMQ 是Apache出品,最流行的,能力強勁的開源消息總線。
ActiveMQ 是一個完全支持JMS1.1和J2EE 1.4規范的 JMS Provider實現,盡管JMS規范出台已經是很久的事情了,但是JMS在當今的J2EE應用中間仍然扮演著特殊的地位。

主要特點:
  1. 多種語言和協議編寫客戶端。語言: Java, C, C++, C#, Ruby, Perl, Python, PHP。應用協議: OpenWire,Stomp REST,WSNotification,XMPP,AMQP;
  2. 完全支持JMS1.1和J2EE 1.4規范 (持久化,XA消息,事務);
  3. 對Spring的支持,ActiveMQ可以很容易內嵌到使用Spring的系統裡面去,而且也支持Spring2.0的特性;
  4. 通過了常見J2EE服務器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的測試,其中通過JCA 1.5 resource adaptors的配置,可以讓ActiveMQ可以自動的部署到任何兼容J2EE 1.4 商業服務器上;
  5. 支持多種傳送協議:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA;
  6. 支持通過JDBC和journal提供高速的消息持久化;
  7. 從設計上保證了高性能的集群,客戶端-服務器,點對點;
  8. 支持Ajax;
  9. 支持與Axis的整合;
  10. 可以很容易得調用內嵌JMS provider,進行測試;
  11. ActiveMQ速度非常快;一般要比jbossMQ快10倍。

  優點:
  是一個快速的開源消息組件(框架),支持集群,同等網絡,自動檢測,TCP,SSL,廣播,持久化,XA,和J2EE1.4容器無縫結合,並且支持輕量級容器和大多數跨語言客戶端上的Java虛擬機。
  消息異步接受,減少軟件多系統集成的耦合度。
  消息可靠接收,確保消息在中間件可靠保存,多個消息也可以組成原子事務。
  缺點:
  ActiveMQ默認的配置性能偏低,需要優化配置,但是配置文件復雜,ActiveMQ本身不提供管理工具;
  示例代碼少;主頁上的文檔看上去比較全面,但是缺乏一種有效的組織方式,文檔只有片段,用戶很難由淺入深進行了解,
  文檔整體的專業性太強。在研究階段可以通過查maillist、看Javadoc、分析源代碼來了解。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved