ActiveMQ是Apache软件基金会的开源产品,支持AMQP协议、MQTT协议(和XMPP协议作用类似)、Openwire协议和Stomp协议等多种消息协议。并且ActiveMQ完整支持JMS API接口规范(当然Apache也提供多种其他语言的客户端,例如:C、C++、C#、Ruby、Perl)。
安装过程
ActiveMQ 的运行需要Java环境:JDK安装(bin)
下载软件
可以Apache ActiveMQ的官网下载安装包:https://activemq.apache.org/download-archives.html。这里我们示例在CentOS下的安装过程,所以下载Linux下的压缩包即可(http://mirrors.hust.edu.cn/apache//activemq/5.15.2/apache-activemq-5.15.2-bin.tar.gz)。
[root@peipei3514 ~]# cd /usr/local/src/
[root@peipei3514 src]# wget http://mirrors.hust.edu.cn/apache//activemq/5.15.2/apache-activemq-5.15.2-bin.tar.gz
解压安装
[root@peipei3514 src]# tar -zxvf apache-activemq-5.15.2-bin.tar.gz -C /usr/local/
配置环境变量(不是必须的)
如果只是在测试环境使用Apache ActiveMQ,以便熟悉消息中间件本身的特性和使用方式。那么无需对解压后的软件进行任何配置,所有可运行的命令都在软件安装目录的./bin
目录下。为了使用方便,最好配置一下环境变量,如下所示(注意,根据自己的软件安装位置,环境变量的设置是不一样的,不要盲目粘贴复制):
设置该次会话的环境变量:
[root@peipei3514 src]# export PATH=/usr/local/apache-activemq-5.15.2/bin/linux-x86-64:$PATH;
永久设置环境变量:
[root@peipei3514 src]# echo "export PATH=/usr/local/apache-activemq-5.15.2/bin/linux-x86-64:$PATH;" >> /etc/profile
或者直接编辑/etc/profile
文件:
在文件最下面加入:
#Set apache-activemq-5.15.2 Environment
export ACTIVEMQ_HOME=/usr/local/apache-activemq-5.15.2/
export PATH=$ACTIVEMQ_HOME/bin/linux-x86-64:$PATH
export PATH
使环境变量生效:
[root@peipei3514 src]# source /etc/profile
在ActiveMQ Version 5.9+的版本中,Apache ActiveMQ 针对操作系统进行了更深入的优化,所以可以看到
./bin
目录下,有一个针对32位Linux运行命令的./linux-x86-32
目录,和针对64位Linux运行命令的./linux-x86-64
目录。请按照自己的情况进行环境变量设置和命令运行。
运行程序
现在可以在任何目录,运行activemq命令了。注意activemq命令一共有6个参数(console | start | stop | restart | status | dump),启动Apache ActiveMQ使用的命令是activemq start:
[root@peipei3514 src]# activemq start
Starting ActiveMQ Broker...
访问管理页面
如果启动成功,就可以在浏览器上访问服务节点在8161端口的管理页面了(例如http://192.168.1.128:8161/):
点击‘manage ActiveMQ broker’连接,可以进入管理主界面(默认的用户和密码都是admin)。以上就是Apache ActiveMQ消息中间件最简的安装和运行方式。
ActiveMQ的其他命令参数
如同上文讲到的,activemq命令除了start参数用于启动activemq程序以外,还有另外5个参数可以使用:console | stop | restart | status | dump。他们代表的使用意义是:
- stop:停止当前ActiveMQ节点的运行。
- restart:重新启动当前ActiveMQ节点。
- status:查看当前ActiveMQ节点的运行状态。如果当前ActiveMQ节点没有运行,那么将返回“ActiveMQ Broker is not running”的提示信息。
注意,status命令只能告诉开发人员当前节点时停止的还是运行的,除此之外不能从status命令获取更多的信息。例如,ActiveMQ为什么创建Queue失败?当前ActiveMQ使用了多少内存?而要获取这些信息,需要使用以下参数启动ActiveMQ节点。
- console:使用控制台模式启动ActiveMQ节点;在这种模式下,开发人员可以调试、监控当前ActivieMQ节点的实时情况,并获取实时状态。
- dump:如果您采用console模式运行ActiveMQ,那么就可以使用dump参数,在console控制台上获取当前ActiveMQ节点的线程状态快照。