图片 7

ActiveMQ部署步骤和后台管理网站Service,消息队列之ActiveMQ安装配置

最近部署ActiveMQ的时候,发现有的服务器可以打开后台管理网址,有的服务器无法打开,Jetty报503
Service Unavailable。

Activemq是著名的消息队列产品,而持久化指的是在mq挂掉的时候,消息不会被抛弃,而是会被继续保存,等待进程复活。这个Activemq的持久化功能必须在5.9版本以上才会实现,而现在官方最新的mq版本是5.14.1,笔者的这个实验也是使用5.14.1版本,实验工具是金山云服务器,规格是2核4G无外网。

简述:ActiveMQ是由Apache出品的,一款最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE
1.4规范的 JMS
Provider实现,它非常快速,支持多种语言的客户端和协议,而且可以非常容易的嵌入到企业的应用环境中,并有许多高级功能。

搞了很久终于发现了问题,现将部署和解决过程做笔记如下:

#wget ,然后解压缩到指定的文件夹里,我选择的就是根目录,#tar -zxvf  /activemq。

一、安装ActiveMQ

安装部署步骤:

首先需要更改activemq文件夹里的conf/activemq.xml,重点改的是截图里的内容:

1.下载ActiveMQ

# 查看是否自带了Java
rpm -qa | grep java
# 卸载Linux自带的OpenJava
yum remove -y java
# 或者
rpm -e java

# 上传或联网下载JDK 7
rz jdk-7u79-linux-x64.rpm
# 或者
wget http://download.Oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm
rpm -ivh jdk-7u79-linux-x64.rpm
java -version
vi ~/.bash_profile
---------------------------------------------
export JAVA_HOME=/usr/java/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
---------------------------------------------
source ~/.bash_profile
echo $JAVA_HOME

# 上传或联网下载JDK
rz apache-activemq-5.12.1-bin.tar.gz
# 或者
wget http://archive.apache.org/dist/activemq/5.12.1/apache-activemq-5.12.1-bin.tar.gz
tar zxvf apache-activemq-5.12.1-bin.tar.gz
mv apache-activemq-5.12.1 /usr/local/activemq

# 直接改造activemq原生启动脚本来做服务引导脚本
ln -s /usr/local/activemq/bin/activemq /etc/init.d/

vi /etc/init.d/activemq
---------------------------------------------
# 第二行插入
# chkconfig: 345 63 37
# description: Auto start ActiveMQ
---------------------------------------------

# 可以设置开机启动了
chkconfig activemq on
chkconfig --list activemq

# 启动服务看看
service activemq start

# 设置防火墙
service iptables status
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 61616 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8161 -j ACCEPT
service iptables save
service iptables restart

图片 1

官方网站:

如上部署好以后,就可以正常使用了,默认消息端口是61616,后台管理网址端口8161,直接用浏览器打开后台管理网址,界面如下:

其中zkaddress写的是对应的zk机器的”内网地址:端口号”,多台机器用逗号隔开,默认zk的端口是2181。同时我设定在zk会给mq生成一个叫lctimermq这样一个节点。

2.安装JDK7,参考(

图片 2

这里一定要注意!!!有些童鞋可能出于职业习惯或者思维贯式就把线上环境正在使用的配置文件拿来直接就用,以为线上的东西就是OK的,但是这一条在mq这里绝对不好使!因为mq这里的zk填写的是线上的zk,如果你这时候启动了mq,那么正式线上的消息队列就会转成这台实验机,后果也是灾难性的,这是一个大坑,一定要切记切记~~~~

3.创建目录:
# mkdir /usr/activemq

但是在线上服务器部署时就出了问题,无法访问后台管理网站,界面如下:

插播结束,上面那一段里hostname里面对应填写本地的内网ip地址即可。

4解压apache-activemq

图片 3

下面的80指的是“非持久化消息所占内存的百分比”,10GB是“持久化消息所占硬盘大小”,5GB是“临时消息所占硬盘大小”,以上几个值可以根据实际情况调整。

# tar -zxvf apache-activemq-5.14.1-bin.tar.gz -C /usr/activemq

度娘了很久,没有找到相关的解决办法,后来第N编翻看ActiveMQ官方文档的时候,看到还可以activemq
console参数进行前台启动,可能会暴露出错误原因,于是命令如下:

图片 4

5.启动

# 先停用activemq
service activemq stop
# 手动控制台方式启动
/usr/local/activemq/bin/activemq console

这里是端口定义和用户验证的密码等等,61616是mq的工作监听端口,8161是web端的端口,一般来说mq与服务是一对一搭配的,一个mq已经开了61616给A服务,再开一个61615端口给B服务,这样做是有风险的,在生产环境里不推荐。

cd /usr/activemq/apache-activemq-5.12.0/bin
./activemq start

于是看到一堆又一堆的输出,向上翻了N屏后最终趴到如下一句错误:

如果真的由于业务需要一台机器上运行多个ActiveMq,这里主要说一下有什么地方不重复:

6.测试

图片 5

1、brokerName名称不能重复

ps -ef | grep activemq #查看进程是否存在

猛然想起我曾经将这个服务器hostname改为dubbo,却没有修改hosts文件!!!

2、端口号不能重复uri = tcp://localhost:50509

图片 6

图片 7

3、kahadb路径不能重复