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

现实的企业中,对于消息通讯的应用一直都很是的火热,并且在J2EE的企业应用中扮演着特殊的角色,因此对于它研究是很是有必要的。javascript

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

消息中间件

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

消息中间件有不少的用途和优势:
1. 将数据从一个应用程序传送到另外一个应用程序,或者从软件的一个模块传送到另一个模块;
2. 负责创建网络通讯的通道,进行数据的可靠传送。
3. 保证数据不重发,不丢失
4. 可以实现跨平台操做,可以为不一样操做系统上的软件集成技工数据传送服务apache

MQ

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

下面进入咱们今天的主题,为你们介绍ActiveMQ:浏览器

ActiveMQ

简要概述ActiveMQ

Apache ActiveMQ ™ is the most popular and powerful open source messaging and Integration Patterns server.
Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features while fully supporting JMS 1.1 and J2EE 1.4.

ActiveMQ是由Apache出品的,一款最流行的,能力强劲的开源消息总线。ActiveMQ是一个彻底支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,它很是快速,支持多种语言的客户端和协议,并且能够很是容易的嵌入到企业的应用环境中,并有许多高级功能。安全

下面咱们下载一个版本,玩一玩。服务器

下载ActiveMQ

官方网站:http://activemq.apache.org/
如今ActiveMQ最新的版本是5.11.1,下载挺简单的,就再也不截图了。markdown

运行ActiveMQ服务

  1. 下载,解压缩
    你们如今好以后,将apache-activemq-5.11.1-bin.zip解压缩,咱们能够看到它的总体目录结构:
    这里写图片描述
    从它的目录来讲,仍是很简单的:
    • bin存放的是脚本文件
    • conf存放的是基本配置文件
    • data存放的是日志文件
    • docs存放的是说明文档
    • examples存放的是简单的实例
    • lib存放的是activemq所需jar包
    • webapps用于存放项目的目录
  2. 启动ActiveMQ
    咱们了解activemq的基本目录,下面咱们运行一下activemq服务,双击bin目录下的activemq.bat脚本文件或运行本身电脑版本下的activemq.bat,就能够看下图的效果。
    这里写图片描述

从上图咱们能够看到activemq的存放地址,以及浏览器要访问的地址.
3. 测试网络

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

C:\Documents and Settings\Administrator>netstat -an|find "61616" 
TCP     0.0.0.0:61616     0.0.0.0:0       LISTENING

4. 监控
ActiveMQ默认启动时,启动了内置的jetty服务器,提供一个用于监控ActiveMQ的admin应用。
admin:http://127.0.0.1:8161/admin/

用户名和密码都是admin

这里写图片描述
5. 至此,服务端启动完毕

中止服务器,只须要按着Ctrl+Shift+C,以后输入y便可。

咱们简单说说ActiveMQ特性,网上不少,只是为了保证博文的完整。

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. 经过了常见J2EE服务器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的测试,其中经过JCA 1.5 resource adaptors的配置,可让ActiveMQ能够自动的部署到任何兼容J2EE 1.4 商业服务器上
  5. 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
  6. 支持经过JDBC和journal提供高速的消息持久化
  7. 从设计上保证了高性能的集群,客户端-服务器,点对点
  8. 支持Ajax
  9. 支持与Axis的整合
  10. 能够很容易得调用内嵌JMS provider,进行测试

什么状况下使用ActiveMQ?

  1. 多个项目之间集成
    (1) 跨平台
    (2) 多语言
    (3) 多项目
  2. 下降系统间模块的耦合度,解耦
    (1) 软件扩展性
  3. 系统先后端隔离
    (1) 先后端隔离,屏蔽高安全区

其实ActiveMQ的应用还有不少,你们能够上网查查,再也不一一举例。

总结

ActiveMQ并不难,具备不少的优点。

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

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>