必威电竞|足球世界杯竞猜平台

ActiveMQ
來源:互聯網

apache ActiveMQ是Apache軟件基金會所研發的開放源代碼消息中間件;由于ActiveMQ是一個純Java程序,因此只需要操作系統支持Java虛擬機,ActiveMQ便可執行。

特性列表

1. 多種語言和協議編寫客戶端。語言: Java, C, C++, C#,Ruby, Perl, Python, PHP。應用協議: OpenWire,Stomp REST,WS Notification,XMPP,AMQP

2. 完全支持JMS1.1和J2EE 1.4規范 (持久化,XA消息,事務)

3. 對Spring的支持,ActiveMQ可以很容易內嵌到使用Spring的系統里面去,而且也支持Spring2.0的特性

4. 通過了常見JBoss服務器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的測試,其中通過jca 1.5 resource adaptors的配置,可以讓ActiveMQ可以自動的部署到任何兼容J2EE 1.4 商業服務器上

5. 支持多種傳送協議:in-VM,TCP,SSL,NIO,UDP,Jgroups,JXTA

6. 支持通過Java數據庫連接和journal提供高速的消息持久化

7. 從設計上保證了高性能的集群,客戶端-服務器,點對點

8. 支持Ajax

9. 支持與axis的整合

10. 可以很容易得調用內嵌JMS provider,進行測試

競爭者

其他開源JMS供應商

jbossmq(jboss 4)

jbossmessaging (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在性能上會有一定的優勢。

商業JMS供應商111

IBM WebSphereMQ

BEAWebLogicJMS

OracleAQ

NonStop Server for Java Message Service(JMS)

Sun Java System Message Queue

Sonic jms

TIBCO Enterprise For JMS

iLinkMQ (國內)

TongLink/Q(北京東方通)

現在的商業J2EE 應用服務器大部分都會有JMS Provider的實現,畢竟應用服務器都已經花費不薄,也不在乎在里面送一個JMS Provider了,當然還是有獨立的比如IBM WebSphere MQ,Sonic JMS ,前者肯定是商用MQ(這個概念不僅僅是JMS Provier了,只能說JMS 只是它提供的一個應用)中間的巨無霸了。

從這點來看,ActiveMQ明顯的競爭者并不多,因為它是作為獨立的開源JMS Provider出現的,很容易被用于多種結構設計中,使用ActiveMQ作為默認JMS Provider的開源項目有ServiceMix,Geronimo.

安裝ActiveMQ

首先去http://activemq.apacheorg/downloadHTML 下載最新版本4.1.0release,解壓apache-activemq-4.1-incubator.zip(或者apache-activemq-4.1-incubator.tar.gz)目錄如下:

+bin (windows下面的bat和unix/Linux下面的sh)

+conf (activeMQ配置目錄,包含最基本的activeMQ配置文件)

+data (默認是空的)

+docs (index,replease版本里面沒有文檔,-.-b不知道為啥不帶)

+Example (幾個例子

+天秤座 (activemMQ使用到的lib)

-apacheactivemq-4.1-incubator.jar (ActiveMQ的binary)

-LICENSE.txt

-Noticetxt

-README.txt

-user-guideHTML

你可以使用bin\activemq.bat(activemq) 啟動,如果一切順利,你就會看見類似下面的信息:

幾個小提示

1. 這個僅僅是最基礎的ActiveMQ的配置,很多地方都沒有配置因此不要直接使用這個配置用于生產系統。

2. 有的時候由于端口被占用,導致ActiveMQ錯誤,ActiveMQ可能需要以下端口1099(JMX),61616(默認的TransportConnector)。

3. 如果沒有物理網卡,或者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的名字,默認是toolDEFAULT

[durabl] 是否持久化消息,默認是false

[messagecount] 發送消息數量,默認是10

[messagesize] 消息長度,默認是255

[clientID] durable為true的時候,需要配置clientID

[timeToLive] 消息存活時間

[sleepTime] 發送消息中間的休眠時間

[transacte] 是否采用事務

ConsumerTool broker的地址,默認的是tcp://localhost:61616

[true|flase] 是否使用topic,默認是false

[subject] subject的名字,默認是toolDEFAULT

[durabl] 是否持久化消息,默認是false

[maxiumMessages] 接受最大消息數量,0表示不限制

[clientID] durable為true的時候,需要配置clientID

[transacte] 是否采用事務

[sleepTime] 接受消息中間的休眠時間,默認是0,onMeesage方法不休眠

[receiveTimeOut] 接受超時

我們可以這樣使用:

先啟動activeMQ,再打開兩個命令窗口,都進入D:\activemq\example,一個運行:ant consumer,一個運行:ant producer,如果成功發送/接收了消息就OK了。

參考資料 >

Apache ActiveMQ教程(一).ITeye技術網站.2016-09-22

生活家百科家居網