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