JMS - ActiveMQ - 介绍 、使用场景、优点和不足

ActiveMQj简介

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。开源的JMS Provider大部分都已经停止发展。 

ActiveMQ明显的竞争者并不多,因为它是作为独立的开源JMS Provider出现的,很容易被用于多种结构设计中,使用ActiveMQ作为默认JMS Provider的开源项目有ServiceMix,Geronimo. 

特性列表

http://baike.baidu.com/view/433374.htm?fr=aladdin

⒈ 多种语言和协议编写客户端。

    语言: 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提供高速的消息持久化 从网络底层来看,只有ActiveMQ使用了NIO,单从这个角度来看ActiveMQ在性能上会有一定的优势。

⒎ 从设计上保证了高性能的集群,客户端-服务器,点对点

⒏ 支持Ajax

⒐ 支持与Axis的整合

⒑ 可以很容易得调用内嵌JMS provider,进行测试 

官方例子:\apache-activemq-5.5.1\example

 - 参考  \apache-activemq-5.5.1\example\user-guide.html

 - 由于ActiveMQ是一个独立jms provider,所以我们不需要其他任何第三方服务器就可以马上做我们的测试

 - 编译example目录下面的程序 ProducerTool/ConsumerTool 是JMS参考里面提到的典型应用,

    Producer产生消息,Consumer消费消息,而且

    这个例子还可以加入参数帮助你测试刚才启动的本地 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了。

新开一个命令窗口,进入\apache-activemq-5.5.1\example
cd example
ant consumer

新开另一个命令窗口,进入\apache-activemq-5.5.1\example
cd example
ant producer

可以指定要连接的参数如下所示:
ant producer -Durl=tcp://ip:port

使用场景

优点缺点

相关推荐