JMS的队列消息传递过程如下图:
JMS的主题消息传递过程如下图:
ActiveMQ下载与部署
1、 下载
到官网下载最新版本,有windows版本和linux版本的。http://activemq.apache.org/download.html
windows版本:apache-activemq-bin.zip
linux版本:apache-activemq-bin.tar.gz
2、 部署
A、 windows下部署
ActiveMQ部署其实很简单,和所有Java一样,要跑java程序就必须先安装JDK并配置好环境变量,这个很简单。
然后解压下载的apache-activemq-bin.zip压缩包到一个目录。
进入bin目录,发现有win32和win64两个文件夹,这2个文件夹分别对应windows32位和windows64位操作系统的启动脚本。
我的环境是windows10,就进入win64目录,其中activemq.bat便是启动脚本,双击启动。
ActiveMQ默认启动到8161端口,启动完了后在浏览器地址栏输入:http://localhost:8161/admin要求输入用户名密码,默认用户名密码为admin、admin,这个用户名密码是在conf/users.properties中配置的。输入用户名密码后便可看到如下图的ActiveMQ控制台界面了。
B、 linux下部署
1.新建一个文件夹activeMQ
mkdir /server
2.授权
chmod 777 /server
3.下载activeMQ安装包,拷贝到/activeMQ目录下
apache-activemq-5.6.0-bin.tar.gz,下载地址http://activemq.apache.org/download.html
4.解压文件到运行目录/activeServer
tar -xzvf /server/apache-activemq-5.6.0-bin.tar.gz
5.修改activemq运行文件的权限
cd /server/apache-activemq-5.6.2/bin
chmod 755 activemq
运行./activemq
6.运行
三种运行方式:
(1)普通启动 ./activemq start
(2)启动并指定日志文件 ./activemq start >tmp/smlog
(3)后台启动方式nohup ./activemq start >/tmp/smlog
前两种方式下在命令行窗口关闭时或者ctrl+c时导致进程退出,采用后台启动方式则可以避免这种情况
7.检查已经启动
ActiveMQ默认采用61616端口提供JMS服务,使用8161端口提供管理控制台服务,执行以下命令以便检验是否已经成功启动ActiveMQ服务。
打开端口:nc -lp 61616 &
查看哪些端口被打开 netstat -anp
查看61616端口是否打开: netstat -an | grep 61616
检查是否已经启动:
(1).查看控制台输出或者日志文件
(2).直接访问activemq的管理页面:http://localhost:8161/admin/
8.关闭
如果开启方式是使用(1)或(2),则直接ctrl+c或者关闭对应的终端即可
如果开启方式是(3),则稍微麻烦一点:
先查找到activemq对应的进程:
ps -ef | grep activemq
然后把对应的进程杀掉,假设找到的进程编号为 168168
kill 168168