一.安装ActiveMQ
首先去http://activemq.apache.org/download.html 下载最新版本4.1.0release (http://activemq.apache.org/activemq-410-release.html), 解压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 (几个例子 +lib (activemMQ使用到的lib) -apache-activemq-4.1-incubator.jar (ActiveMQ的binary) -LICENSE.txt -NOTICE.txt -README.txt -user-guide.html
你可以使用bin\activemq.bat(activemq) 启动,如果一切顺利,你就会看见类似下面的信息 (细节可能不一样,比如路径,或者jmx,jdbc信息)
ACTIVEMQ_HOME: D:\java\framework_and_lib\activemq\apache-activemq-4.1-incubator\ bin\.. Loading message broker from: xbean:activemq.xml INFO BrokerService - ActiveMQ null JMS Message Broker (localho st) is starting INFO BrokerService - For help or more information please see: http://incubator.apache.org/activemq/ INFO ManagementContext - JMX consoles can connect to service:jmx:r mi:///jndi/rmi://localhost:1099/jmxrmi INFO JDBCPersistenceAdapter - Database driver recognized: [apache_derby _embedded_jdbc_driver] INFO DefaultDatabaseLocker - Attempting to acquire the exclusive lock to become the Master broker INFO DefaultDatabaseLocker - Becoming the master on dataSource: org.ap ache.derby.jdbc.EmbeddedDataSource@1d840cd INFO JournalPersistenceAdapter - Journal Recovery Started from: Active Jou rnal: using 5 x 20.0 Megs at: D:\java\framework_and_lib\activemq\apache-activemq -4.1-incubator\activemq-data\journal INFO JournalPersistenceAdapter - Journal Recovered: 0 message(s) in transa ctions recovered. INFO TransportServerThreadSupport - Listening for connections at: tcp://P-SUW EI:61616 WARN MulticastDiscoveryAgent - brokerName not set INFO TransportConnector - Connector default Started INFO TransportServerThreadSupport - Listening for connections at: stomp://P-S UWEI:61613 INFO TransportConnector - Connector stomp Started INFO NetworkConnector - Network Connector default Started INFO BrokerService - ActiveMQ JMS Message Broker (localhost, I D:P-SUWEI-1207-1170916242296-1:0) started
*。几个小提示 1. 这个仅仅是最基础的ActiveMQ的配置,很多地方都没有配置因此不要直接使用这个配置用于生产系统 2. 有的时候由于端口被占用,导致ActiveMQ错误,ActiveMQ可能需要以下端口1099(JMX),61616(默认的TransportConnector) 3. 如果没有物理网卡,或者MS的LoopBackAdpater Multicast会报一个错误
二. 测试你的ActiveMQ 由于ActiveMQ是一个独立的jms provider,所以我们不需要其他任何第三方服务器就可以马上做我们的测试了.编译 example目录下面的程序 ProducerTool/ConsumerTool 是JMS参考里面提到的典型应用,Producer产生消息,Consumer消费消息 而且这个例子还可以加入参数帮助你测试刚才启动的本地ActiveMQ或者是远程的ActiveMQ
ProducerTool [url] 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 [url] 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] 接受超时
我们这样可以使用: java -classpath .\apache-activemq-4.1-incubator.jar;example\bin ProducerTool tcp://192.168.3.142:61616 test.mysubject java -classpath .\apache-activemq-4.1-incubator.jar;example\bin ConsumerTool tcp://192.168.3.142:61616 test.mysubject
当然你可以使用上面的参数进行更复杂的测试,持久,事务
如果出现下面的信息,恭喜你,你的ActiveMQ已经能够工作了 Connecting to URL: tcp://192.168.3.142:61616 Publishing a Message with size 255 to queue: TOOL.DEFAULT Using non-durable publishing Sleeping between publish 0 ms Sending message: Message: 0 sent at: Thu Feb 08 15:05:34 CST 2007 ... Sending message: Message: 1 sent at: Thu Feb 08 15:05:34 CST 2007 ... 。。。。。。。。
Connecting to URL: tcp://192.168.3.142:61616 Consuming queue: test.mysubject Using non-durable subscription Received: Message: 0 sent at: Thu Feb 08 14:51:34 CST 2007 ... Received: Message: 1 sent at: Thu Feb 08 14:51:34 CST 2007 ... 。。。。
三.小结 我们已经下载,启动,并且用程序测试了我们的ActiveMQ,而后面将在这个能跑得ActiveMQ进一步的走下去,一步一步展示ActiveMQ的高级特性。