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,WS Notification,XMPP,AMQP
⒉ 完全支持JMS1.1和J2EE 1.4規範 (持久化,XA消息,事務)
⒊ 對Spring的支持,ActiveMQ可以很容易內嵌到使用Spring的系統裏面去,而且也支持Spring2.0的特性
⒋ 通過了常見J2EE服務器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的測試,其中通過JCA 1.5 resource adaptors的配置,可以讓ActiveMQ可以自動的部署到任何兼容J2EE 1.4 商業服務器上
⒌ 支持多種傳送協議:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
⒍ 支持通過JDBC和journal提供高速的消息持久化
⒎ 從設計上保證了高性能的集羣,客戶端-服務器,點對點
⒏ 支持Ajax
⒐ 支持與Axis的整合
⒑ 可以很容易得調用內嵌JMS provider,進行測試


2競爭者編輯
其他開源JMS供應商
jbossmq(jboss 4)
jboss messaging (jboss 5)
joram-4.3.21 2006-09-22
openjms-0.7.7-alpha-3.zip December 26,2005
mantamq
ubermq
SomnifugiJMS 2005-7-27
開源的JMS Provider大部分都已經停止發展了,剩下的幾個都是找到了東家,和某種J2EE 服務器掛鉤,比如jboss mq 與jboss,joram與jonas(objectweb組織),ActiveMQ 與Geronimo(ASF APACHE基金組織),而在這3個之間,從網絡底層來看,只有ActiveMQ使用了NIO,單從這個角度來看ActiveMQ在性能上會有一定的優 勢。
現在的商業J2EE 應用服務器大 部分都會有JMS Provider的實現,畢竟應用服務器都已經花費不薄,也不在乎在裏面送一個JMS Provider了,當然還是有獨立的比如IBM WebSphere MQ,Sonic JMS,前者肯定是商用MQ(這個概念不僅僅是JMS Provier了,只能說JMS 只是它提供的一個應用)中間的巨無霸了。
從這點來看,ActiveMQ明顯的競爭者並不多,因爲它是作爲獨立的開源JMS Provider出現的,很容易被用於多種結構設計中,使用ActiveMQ作爲默認JMS Provider的開源項目有ServiceMix,Geronimo.


首 先去http://activemq.apache.org/download.html 下載最新版本5.9.0release, 解壓apache-activemq-5.9-incubator.zip(或者apache-activemq-5.9- incubator.tar.gz)目錄如下:
+bin (windows下面的bat和unix/linux下面的sh)
+conf (activeMQ配置目錄,包含最基本的activeMQ配置文件)
+data (默認是空的)
+docs (index,replease版本里面沒有文檔,-.-b不知道爲啥不帶)
+example (幾個例子
+lib (activemMQ使用到的lib)
-apache-activemq-4.1-incubator.jar (ActiveMQ的binary)
-LICENSE.txt
-NOTICE.txt
-README.txt
-user-guide.html
你可以使用bin\activemq.bat(activemq) 啓動,如果一切順利,你就會看見類似下面的信息:
運行信息
幾個小提示
⒈ 這個僅僅是最基礎的ActiveMQ的配置,很多地方都沒有配置因此不要直接使用這個配置用於生產系統
⒉ 有的時候由於端口被佔用,導致ActiveMQ錯誤,ActiveMQ可能需要以下端口1099(JMX),61616(默認的TransportConnector)
⒊ 如果沒有物理網卡,或者MS的LoopBackAdpater Multicast會報一個錯誤
由於ActiveMQ是一個獨立的jms provider,所以我們不需要其他任何第三方服務器就 可以馬上做我們的測試了.編譯example目錄下面的程序 ProducerTool/ConsumerTool 是JMS參考裏面提到的典型應用,Producer產生消息,Consumer消費消息,而且這個例子還可以加入參數幫助你測試剛纔啓動的本地 ActiveMQ或者是遠程的ActiveMQ
ProducerTool broker的地址,默認的是tcp://localhost:61616
[true|flase] 是否使用topic,默認是false
[subject] subject的名字,默認是TOOL.DEFAULT
[durabl] 是否持久化消息,默認是false
[messagecount] 發送消息數量,默認是10
[messagesize] 消息長度,默認是255
[clientID] durable爲true的時候,需要配置clientID
[timeToLive] 消息存活時間
[sleepTime] 發送消息中間的休眠時間
[transacte] 是否採用事務
ConsumerTool broker的地址,默認的是tcp://localhost:61616
[true|flase] 是否使用topic,默認是false
[subject] subject的名字,默認是TOOL.DEFAULT
[durabl] 是否持久化消息,默認是false
[maxiumMessages] 接受最大消息數量,0表示不限制
[clientID] durable爲true的時候,需要配置clientID
[transacte] 是否採用事務
[sleepTime] 接受消息中間的休眠時間,默認是0,onMeesage方法不休眠
[receiveTimeOut] 接受超時
我們可以這樣使用:
先啓動activeMQ,再打開兩個命令窗口,都進入D:\activemq\example,一個運行:ant consumer,一個運行:ant producer,如果成功發送/接收了消息就OK了。
 


發佈了26 篇原創文章 · 獲贊 4 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章