ActiveMQ (一)

前言:本人水平有限,文章中可能存在错误和不足,欢迎指正。发现并消除错误永远是程序进步的方向!java

 

ActiveMQ介绍:Apache ActiveMQ™ 是Apache出品,最流行的,能力强劲的开源消息总线。Apache ActiveMQ速度快,支持多种语言和协议。linux

 

ActiveMQ的优点:写到这里的时候发现本身以前仅仅用过JbossMQ,很差对其余的MQ作对比,下面的仅仅是和JbossMQ对比的我的经验。spring

1.使用环境简单。比起JboosMQ,ActiveMQ几乎能够运行在任何的JVM上,而JbossMQ只能集成到Jboss应用服务器上。windows

2.执行效率高。这里就不放出测试对比图了,在我我的开发的应用上,ActiveMQ比JbossMQ快5-8倍。tomcat

3.自动重连功能。至关实用的一个功能,这也是我选择ActiveMQ的重要缘由。服务器

4.spring支持。其实这个不算理由,但在spring MVC火热的年代,也是一个强大的理由。测试

5.封装简单。比起JbossMQ的繁琐,对ActiveMQ的封装是很轻松的事情,对于系统集成管理来讲,下降了很大的成本。spa

 

ActiveMQ的劣势:传输文件不方便,并且效率相对来讲不是很高,使用起来也不方便,封装代价高。固然这个缺点对于一个消息总线来讲此功能不算最主要的,还在忍受范围内。命令行

 

版本建议:5.0.0-5.10.0版本在实现上存在XML外部实体注入漏洞,攻击者可利用此漏洞获取敏感信息或形成拒绝服务。本人使用的是目前官网的最新的5.11.1。线程

 

前置安装:java,tomcat(用于做为客户端)

 

安装:只要解压就能直接使用的,不作太多的介绍了,但在linux上须要对权限进行修改。

 

启动前的检查:主要是端口冲突

端口:61616  JMS服务

端口:8161 提供管理控制台服务

 

启动:windows上的不作太多说明了,就是运行ActiveMQ.bat

linux启动有三种方式:

(1)最正常的启动: ./activemq start
(2)启动并指定日志: ./activemq start >tmp/smlog
(3)后台启动方式: nohup ./activemq start >/tmp/smlog
前两种方式下在命令行窗口关闭时或者ctrl+c时致使进程退出,采用后台启动方式则能够避免这种状况

 

关闭:windows的简单不过了,关掉打开bat文件时的控制台窗口就能够了。linux除了用nohup启动的,能够直接用Ctrl+C来关闭,对于第3种的,能够用 ps -ef | grep activemq  命令在查找进程编号,而后用kill 命令来干掉他,有时由于一些线程并无跑完或还属于挂起,kill命令并不能杀掉,则可使用 kill -9 来强制关闭。