深入浅出JMS(二)--ActiveMQ简单介绍以及安装

现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的。

上篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了消息通信的规范JMS,我们这篇博文介绍一款开源的JMS具体实现——ActiveMQ。ActiveMQ是一个易于使用的消息中间件。

消息中间件

我们简单的介绍一下消息中间件,对它有一个基本认识就好,消息中间件(MOM:MessageOrientmiddleware)。

消息中间件有很多的用途和优点:

1.将数据从一个应用程序传送到另一个应用程序,或者从软件的一个模块传送到另外一个模块;

2.负责建立网络通信的通道,进行数据的可靠传送。

3.保证数据不重发,不丢失

4.能够实现跨平台操作,能够为不同操作系统上的软件集成技工数据传送服务

MQ

首先简单的介绍一下MQ,MQ英文名MessageQueue,中文名也就是大家用的消息队列,干嘛用的呢,说白了就是一个消息的接受和转发的容器,可用于消息推送。

下面进入我们今天的主题,为大家介绍ActiveMQ:

ActiveMQ

简要概述ActiveMQ

ApacheActiveMQ™isthemostpopularandpowerfulopensourcemessagingandIntegrationPatternsserver.

ApacheActiveMQisfast,supportsmanyCrossLanguageClientsandProtocols,comeswitheasytouseEnterpriseIntegrationPatternsandmanyadvancedfeatureswhilefullysupportingJMS1.1andJ2EE1.4.

ActiveMQ是由Apache出品的,一款最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMSProvider实现,它非常快速,支持多种语言的客户端和协议,而且可以非常容易的嵌入到企业的应用环境中,并有许多高级功能。

下面我们下载一个版本,玩一玩。

下载ActiveMQ

官方网站:http://activemq.apache.org/

现在ActiveMQ最新的版本是5.11.1,下载挺简单的,就不再截图了。

运行ActiveMQ服务

下载,解压缩

大家现在好之后,将apache-activemq-5.11.1-bin.zip解压缩,我们可以看到它的整体目录结构:

这里写图片描述

从它的目录来说,还是很简单的:

bin存放的是脚本文件

conf存放的是基本配置文件

data存放的是日志文件

docs存放的是说明文档

examples存放的是简单的实例

lib存放的是activemq所需jar包

webapps用于存放项目的目录

启动ActiveMQ

我们了解activemq的基本目录,下面我们运行一下activemq服务,双击bin目录下的activemq.bat脚本文件或运行自己电脑版本下的activemq.bat,就可以看下图的效果。

这里写图片描述

从上图我们可以看到activemq的存放地址,以及浏览器要访问的地址.

3.测试

ActiveMQ默认使用的TCP连接端口是61616,通过查看该端口的信息可以测试ActiveMQ是否成功启动netstat-an|find“61616”

C:\DocumentsandSettings\Administrator>netstat-an|find"61616"

TCP0.0.0.0:616160.0.0.0:0LISTENING

4.监控

ActiveMQ默认启动时,启动了内置的jetty服务器,提供一个用于监控ActiveMQ的admin应用。

admin:http://127.0.0.1:8161/admin/

用户名和密码都是admin

这里写图片描述

5.至此,服务端启动完毕

停止服务器,只需要按着Ctrl+Shift+C,之后输入y即可。

我们简单说说ActiveMQ特性,网上很多,只是为了保证博文的完整。

ActiveMQ特性列表

多种语言和协议编写客户端。语言:Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议:OpenWire,StompREST,WSNotification,XMPP,AMQP

完全支持JMS1.1和J2EE1.4规范(持久化,XA消息,事务)

对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性

通过了常见J2EE服务器(如Geronimo,JBoss4,GlassFish,WebLogic)的测试,其中通过JCA1.5resourceadaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE1.4商业服务器上

支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA

支持通过JDBC和journal提供高速的消息持久化

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

支持Ajax

支持与Axis的整合

可以很容易得调用内嵌JMSprovider,进行测试

什么情况下使用ActiveMQ?

多个项目之间集成

(1)跨平台

(2)多语言

(3)多项目

降低系统间模块的耦合度,解耦

(1)软件扩展性

系统前后端隔离

(1)前后端隔离,屏蔽高安全区

其实ActiveMQ的应用还有很多,大家可以上网查查,不再一一举例。

总结

ActiveMQ并不难,具有很多的优势。

下篇博文,我们做一个简单实例,真正的体会一把ActiveMQ的魅力。