ActiveMQ (一)

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

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

ActiveMQ的优势:写到这里的时候发现自己之前仅仅用过JbossMQ,不好对其他的MQ做对比,下面的仅仅是和JbossMQ对比的个人经验。

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

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

3.自动重连功能。相当实用的一个功能,这也是我选择ActiveMQ的重要原因。

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

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

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 来强制关闭。

相关推荐