第一步:新建一台虚拟机
ActiveMQ单独是一台服务器,如果你已经有建好的虚拟机就不用新建虚拟机了,如果没有,则新建一台虚拟机,大家可以参考http://blog.csdn.net/u012453843/article/details/68947589这篇博客进行搭建。已经有虚拟机的可以省略该步骤。
第二步:配置虚拟机静态IP地址并且要能上网
大家可以参考http://blog.csdn.net/u012453843/article/details/52839105这篇博客进行学习(最小化安装没有vim命令,但是有vi命令,我们使用vi命令即可)。已经配置好的,可省略该步骤。
第三步:安装上传下载命令
我使用XShell工具来连接服务器,大家可以参考http://blog.csdn.net/u012453843/article/details/54293774这篇博客进行学习。使用XShell连接上服务器后,我们很常用的操作便是上传操作,即从本地上传文件到服务器,而默认最小化安装的CentOS6虚拟机是没有上传(rz)和下载(sz 文件名)命令的,因此需要安装rz和sz命令,安装命令如下。如果大家采用的是其它上传下载方式,这步可以省略。
[root@activemq ~]# yum install lrzsz
第四步:安装JDK
ActiveMQ是由java编写的,因此运行需要有jdk环境,大家可以参考http://blog.csdn.net/u012453843/article/details/52422736这篇博客来安装JDK。
第五步:上传ActiveMQ的压缩包
大家可以到http://download.csdn.net/detail/u012453843/9835306这个地址下载apache-activemq-5.12.0-bin.tar.gz。下载完后,我们输入命令rz并按回车,会弹出一个对话框,让我们选择要上传的文件,我们选择我们下载好的activemq的压缩包,点击"打开"即可开始上传操作。
第六步:解压activemq
先查看下/usr/local/software目录下是否有我们刚才上传的文件,发现已经有了,然后解压它到/usr/local目录下,如下所示。(注:个人习惯把安装包放到自己建的/usr/local/software目录下,习惯把安装包解压到/usr/local目录下)
[root@activemq software]# ll
总用量 224392
-rw-r--r--. 1 root root 46560868 3月 15 00:57 apache-activemq-5.12.0-bin.tar.gz
-rw-r--r--. 1 root root 183212596 4月 2 10:51 jdk-8u112-linux-x64.gz
[root@activemq software]# tar -zxvf apache-activemq-5.12.0-bin.tar.gz -C /usr/local/
解压完后,我们到/usr/local目录下,查看目录列表可以看到有我们刚才解压好的apache-activemq-5.12.0,我们进入到该目录下,查看文件列表,如下图所示。我们可以看到有一个名为activemq-all-5.12.0.jar的jar包,这个jar包,如果不与spring结合,只是简单用来当做activemq客户端的话,可以使用。
如果要将activemq与spring整合的话,不要使用这个jar包,因为这个jar包当中包含了spring的包结构,而且里面的类与spring里面的类名称是一样的,但是方法不全,当我们将spring和activemq结合的时候,如果系统使用的是activemq的jar包当中的spring的类的话就会报错,启动都启动不了,而且错误还隐藏的特别深,难以捉摸其原因。因此整合的话,不要用这个jar包!!!activemq有一个版本5.11.2,里面没有spring的包结构,我们可以使用。
我们看下bin目录下的文件列表,如下图所示,其中activemq文件是用来启动activemq的。
conf目录存放的是一些配置文件,我们不用动,data目录存放的是服务端的缓存数据,如下所示。
[root@activemq apache-activemq-5.12.0]# ll data/
总用量 0
-rw-r--r--. 1 root root 0 8月 10 2015 activemq.log
[root@activemq apache-activemq-5.12.0]#
webapps提供了管理的后台,如下所示。
[root@activemq apache-activemq-5.12.0]# ll webapps/
总用量 32
drwxr-xr-x. 10 root root 4096 8月 10 2015 admin
drwxr-xr-x. 3 root root 4096 8月 10 2015 api
-rw-r--r--. 1 root root 3638 8月 10 2015 favicon.ico
drwxr-xr-x. 4 root root 4096 8月 10 2015 fileserver
drwxr-xr-x. 2 root root 4096 5月 7 06:58 images
-rw-r--r--. 1 root root 6047 8月 10 2015 index.html
drwxr-xr-x. 2 root root 4096 5月 7 06:58 styles
[root@activemq apache-activemq-5.12.0]#
第七步:启动activemq
我们不用做任何修改便可以启动activemq,如下所示,我们先到bin目录下,然后使用命令./activemq start来启动。
[root@activemq apache-activemq-5.12.0]# cd bin
[root@activemq bin]# ll
总用量 152
-rwxr-xr-x. 1 root root 21748 8月 10 2015 activemq
-rwxr-xr-x. 1 root root 6189 8月 10 2015 activemq-diag
-rw-r--r--. 1 root root 15958 8月 10 2015 activemq.jar
-rw-r--r--. 1 root root 4881 8月 10 2015 env
drwxr-xr-x. 2 root root 4096 5月 7 06:58 linux-x86-32
drwxr-xr-x. 2 root root 4096 5月 7 06:58 linux-x86-64
drwxr-xr-x. 2 root root 4096 5月 7 06:58 macosx
-rwxr-xr-x. 1 root root 83820 8月 10 2015 wrapper.jar
[root@activemq bin]# ./activemq start
INFO: Loading '/usr/local/apache-activemq-5.12.0//bin/env'
INFO: Using java '/usr/local/jdk1.8.0_112/bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: pidfile created : '/usr/local/apache-activemq-5.12.0//data/activemq.pid' (pid '1486')
[root@activemq bin]#
第八步:关闭防火墙
由于虚拟机默认防火墙是开着的,它会限制我们访问各种端口,为了简单,我们关闭防火墙。如下所示,service iptables stop命令用来关闭防火墙,但是防火墙在虚拟机重启后还会自启,为了避免开机自启动,使用chkconfig iptables off来关闭开机自启。chkconfig iptables --list这条命令可以查看7种情况是否还有开启的情况,发现都是关闭状态了,说明防火墙被彻底关闭了。
[root@activemq ~]# service iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
[root@activemq ~]# chkconfig iptables off
[root@activemq ~]# chkconfig iptables --list
iptables 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
[root@activemq ~]#
第九步:访问activemq后台管理页面
我们在地址栏输入http://192.168.156.30:8161/admin/,其中8161是activemq默认的访问端口,admin是指定要访问后台系统,回车后会弹出对话框,用户名和密码都是默认的"admin",然后点击"确定"。
登录后,我们可以看到如下图所示界面。
如果我们点击“Queues”报503错误的话,是因为没有配置127.0.0.1与主机名的映射关系,主机名我们要通过查看/etc/sysconfig/network这个文件中配置的主机名,注意,该值与"[root@activemq ~]"@后的activemq未必相同,当我们在/etc/sysconfig/network文件中配置的主机名有"."时,比如"activemq.admin",这样@后面的那个名字还是activemq,并不会显示"activemq.admin",因此我们要以/etc/sysconfig/network文件中配置的主机名为准。
[root@activemq ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=activemq
[root@activemq ~]#
然后使用命令vi /etc/hosts打开映射文件,127.0.0.1这一行的最后添加一个主机名"activemq"。保存退出后,需要重启activemq,就不会报503了。
跟着我的步骤走的同学不会碰到503错误,这是因为我在/etc/hosts文件中添加了相关映射,如下图所示,这项配置与上图配置有异曲同工之妙。
我们点击管理界面的"Queues",可以看到如下图所示界面,这是点对点消息发送界面。
我们再点击"Topics",可以看到如下图所示界面,这是发布/订阅模式界面
在Send中可以测试发送点对点或发布/订阅两种消息,如下图所示。