假设有两条activemq的服务器,想把他们分别设成主从服务
Master:127.0.0.1
Slave:127.0.0.2
首先两个服务器都需要检查安装文件共享系统,这里用的是NFS和rpcbind没安装的小伙伴可以装一下。可用以下命令查看nfs和rpcbind状态
service nfs status
service rpcbind status
Master配置:
1.修改nfs的共享配置文件 /etc/exports
/usr/local/activemq/data/kahadb 127.0.0.2(rw,no_root_squash)
*需要共享的文件路径 *可访问该文件的服务
***rw:支持对该文件进行读写操作
***no_root_squash:表示客户机以root的身份访问时映射机为本机nobody用户,这个参数很重要,必须指定,否则可能报没有权限访问的错误。
2.关闭防火前
service iptables stop
3.重启rpcbind和nfs服务
service rpcbind restart
service nfs restart
Slave配置:
1.创建一个目录用来挂在共享文件 /data/activemq
2.修改activemq的配置文件conf/activemq.xml
<span style="white-space:pre"> </span><persistenceAdapter>
<kahaDB directory="/${activemq.data}/kahadb"/>
</persistenceAdapter>
修改为:
<span style="white-space:pre"> </span><persistenceAdapter>
<kahaDB directory="/data/activemq"/>
</persistenceAdapter>
***将activemq的数据文件存储目录修改为第一步创建的目录
3.检查可以挂在的文件系统
showmount -e 127.0.0.1
4.挂在文件系统
mount -t nfs 127.0.0.1:/usr/local/activemq/data/kahadb /data/activemq
***将主服务上的共享文件挂在到本机的/data/activemq目录上
这样主从配置完成。当kill掉master时系统就自动连接slave。
注意:
1.共享文件的主从配置,是通过文件共享锁来事项的。先拿到文件锁的服务就是master,其他服务为slave,slave服务默认没10秒那一次文件锁,可以查看activemq控制台
2.只有master的控制台能访问,slave的控制台不能访问。