activemq主备文件共享安装配置(NFSV4)
简介 (2)
概述 (2)
硬件环境说明 (2)
软件环境说明 (2)
安装步骤 (3)
安装 (3)
环境配置 (3)
主从配置 (3)
启动MQ (5)
验证 (5)
停止 (6)
NFS4安装与配置 (7)
背景要求 (7)
NFS安装 (7)
配置共享 (8)
检验手段 (8)
简介
概述
本文档是辅助个人学习与部署基于文件共享方式AcitveMQ主备配置与测试。
硬件环境说明
内存:>1Gb
CPU:>1GHz
硬盘:>8G
软件环境说明
软件名称备注
CentOS 6.2 x64
jdk-7u17-linux-x64.tar.gz
apache-activemq-5.8.0-bin.tar.gz
apache-ant-1.9.0-bin.tar.gz
安装步骤
安装
CentOS 6.2安装选择BasicServer模式,其他全部默认
tar –xzvf jdk-7u17-linux-x64.tar.gz -C /usr/java
tar –xzvf apache-activemq-5.8.0-bin.tar.gz -C /usr/local
tar –xzvf apache-ant-1.9.0-bin.tar.gz -C /usr/local
环境配置
/etc/profile尾部追加以下配置
ACTIVEMQ_HOME=/usr/local/apache-activemq-5.8.0
ANT_HOME=/usr/local/apache-ant-1.9.0
JA V A_HOME=/usr/java/jdk1.7.0_17
export ACTIVEMQ_HOME
export ANT_HOME
export JA V A_HOME
export PA TH=$ACTIVEMQ_HOME/bin:$JA V A_HOME/bin:$ANT_HOME/bin:$PA TH 主从配置
1、配置统一KahaDB文件目录
主服务器$ACTIVEMQ_HOME/conf/activem q.xml
……
……
……
从服务器$ACTIVEMQ_HOME/conf/activem q.xml
……
……
……
……
注释掉amqp协议,才可启动。
2、配置ActiveMQ官方样例为可持久化,及写入到上面配置的KahaDB目录中;
主从服务器$ACTIVEMQ_HOME/example/build.xml
……
……
启动MQ
分别在主从服务器,先后运行以下命令
$ACTIVEMQ_HOME/bin/activemq start
tail -f $ACTIVEMQ_HOME/data/activemq.log
主服务器,抢到文件锁的ActiveMq运行结果如下:
从服务器,没有抢到文件锁的ActiveMq运行结果如下:
验证
1、主服务正常:
主或从服务器运行官方测试样例备注
生产者cd $ACTIVEMQ_HOME/example
ant producer -Durl=tcp://master_server_ip:61616 -Dsubject= TEST.FOO -Dmax=2345
消费者cd $ACTIVEMQ_HOME/example
ant consumer -Durl=tcp://master_server_ip:61616 -Dsubject=TEST.FOO -Dmax=1111
实时数据结果可以通过http://master_server_ip:8161/admin/queues.jsp访问到,用户名/密码(admin/admin)。
2、主服务异常:
主或从服务器运行官方测试样例备注$ACTIVEMQ_HOME/bin/activemq stop 杀掉主
生产者cd $ACTIVEMQ_HOME/example
ant producer -Durl=tcp://slave_server_ip:61616 -Dsubject= TEST.FOO -Dmax=1234
消费者cd $ACTIVEMQ_HOME/example
ant consumer -Durl=tcp://slave_server_ip:61616 -Dsubject=TEST.FOO -Dmax=777
实时数据结果可以通过http://salve_server_ip:8161/admin/queues.jsp访问到,用户名/密码(admin/admin)。
可以在至少保证其中一台是可运行的情况下,杀掉或者启动主或备服务器,跑样例测试,以检验数据是否有正常同步加载。
停止
分别在主从服务器,先后运行以下命令
$ACTIVEMQ_HOME/bin/activemq stop
NFS4安装与配置
背景要求
官方文档:https://www.360docs.net/doc/2910846434.html,/shared-file-system-master-slave.html
Shared File System Master Slave
NFSv3 Warning
In the event of an abnormal NFSv3 client termination (i.e., the ActiveMQ master broker), the NFSv3 server will not timeout the lock that is held by that client. This effectively renders the ActiveMQ data directory inaccessible because the ActiveMQ slave broker can't acquire the lock and therefore cannot start up. The only solution to this predicament with NFSv3 is to reboot all ActiveMQ instances to reset everything.
Use of NFSv4 is another solution because it's design includes timeouts for locks. When using NFSv4 and the client holding the lock experiences an abnormal termination, by design, the lock is released after 30 seconds, allowing another client to grab the lock. For more information about this, see this blog entry.
中文可以参见这里:https://www.360docs.net/doc/2910846434.html,/walterfan/item/ad2346b5772172432bebe345
另外,文中的那篇博客已经没有了,如果真的那么想看,这里可以凑合:
https://www.360docs.net/doc/2910846434.html,/web/20090419134256/https://www.360docs.net/doc/2910846434.html,/eislers_nfs_blog/2008/07/pa rt-i-since-nf.html
NFS安装
参考:https://www.360docs.net/doc/2910846434.html,/computing/debian/servers/setting-up-nfs4.jspx https://www.360docs.net/doc/2910846434.html,/913.html
1、实际BasicServer中已经有以下服务:
NFS服务器,运行以下命令
yum install rpcbind nfs-utils.x86_64 nfs4-acl-tools.x86_64
注:1、CentOS 6.x使用rpcbind代替了portmap
2、32位CentOS,安装nfs,使用
nfs-utils代替上面命令参数中的nfs-utils.x86_64,
nfs4-acl-tools替代上面命令参数中的nfs4-acl-tools.x86_64
配置共享
1、建立共享目录
NFS服务器、ActiveMQ主(备)服务器,建立相同的共享目录
mkdir -m 1777 /nfs4exports
mkdir -m 1777 /nfs4exports/data
2、配置exports文件
NFS服务器/etc/exports
/nfs4exports/data *(rw,nohide,sync,insecure,root_squash,no_subtree_check,fsid=0) 注意:nfs v4,一定要有fsid=0这个参数
3、重启NFS服务
NFS服务器运行以下命令
exportfs -rv
service rpcbind restart
service nfs restart
service iptables stop
4、MQ服务器mount目录
ActiveMQ主(备)服务器运行以下命令
mount -t nfs4 -vvv nfs_server_ip:/ /nfs4exports/data
注意:这里一定要是nfs_server_ip:/,即根目录
检验手段
1、检查是否有nfs v4协议
NFS服务器运行以下命令
rpcinfo -p
结果如下图所示:
2、客户端检查
ActiveMQ主(备)服务器,运行以下命令showmount -e nfs_server_ip
df -h
nfsstat -m
结果如下图所示: