博学,切问,近思--詹子知(http://blog.csdn.net/zhiqiangzhan)
消息中间件(MOM)在SOA架构和ESB产品中常常扮演着核心的角色,现在的消息中间产品也有很多,商业的产品有IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ,开源的则有Sun 的 OpenMQ,ActiveMQ,JbossMQ等。尽管消息中间件产品纷繁复杂,但是其使用方式却毫无二致,原因是它们都遵循JMS规范。本文着重就ActiveMQ来介绍消息中间件的使用,之所以选用ActiveMQ,一是因为它开源,二是因为它配置简单,三是可以直接由程序启动。
ActiveMQ 是Apache出品,最流行的,能力强劲的开源MQ。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。
- 多种语言和协议编写客户端。语言: 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的特性
- 支持通过JDBC和journal提供高速的消息持久化
- 从设计上保证了高性能的集群,客户端-服务器,点对点
启动ActiveMQ服务
1.直接启动批处理文件${ActiveMQ_Home}/bin/activemq.bat,服务地址是:tcp://localhost:61616。可以访问链接:http://localhost:8161/admin来管理和配置。可以为服务添加指定的Queue,Topic,并且可以监视它们的状况,包括消息数量,client个数等等。事实上,ActiveMQ可以动态地创建Queue,但是一些其他的产品,必须先创建Queue才能被使用。在实际的应用中,我们常常使用JNDI来访问此类资源。
2.直接使用程序创建ActiveMQ 服务。
public static void main(String[] args) throws Exception { BrokerService broker = new BrokerService(); broker.setUseJmx(true); broker.addConnector("tcp://localhost:61616"); broker.start(); }