注释:这里演示的是nfs服务器和activemq主节点放在一起,谁先启动谁就是主
1.主服务器配置
安装NFS服务nfs-untils和rpcbind
#yum -y install nfs-utils rpcbind
centos7自带了rpcbind,rpc监听在111端口。
启动rpcbind服务(一定要先启动rpcbind服务再启动nfs服务)
systemctl start rpcbind.service
查看rpcbind服务状态
systemctl status rpcbind.service
#查看rpc
netstat -lntup | grep rpcbind
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1016/rpcbind
tcp6 0 0 :::111 :::* LISTEN 1016/rpcbind
udp 0 0 0.0.0.0:111 0.0.0.0:* 1016/rpcbind
udp 0 0 0.0.0.0:766 0.0.0.0:* 1016/rpcbind
udp6 0 0 :::111 :::* 1016/rpcbind
udp6 0 0 :::766 :::* 1016/rpcbind
把rpcbind另入开机自启动
systemctl enable rpcbind.service
systemctl list-unit-files|grep enabled|grep rpcbind
rpcbind.service enabled
启动NFS服务并查看其状态
systemctl start nfs.service
systemctl status nfs.service
把NFS服务加入开机自启动并查看其状态
systemctl enable nfs.service
systemctl list-unit-files | grep nfs
#创建配置文件
vi /etc/exports
#把主的mq信息放在exports文件下(注意ip和文件夹位置,参考下面第2和3行)
cat /etc/exports
/opt/apache-activemq-5.16.3/data/kahadb 172.16.7.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)
#这里/data_share 为共享目录
#再次修改后,执行exportfs --rv让配置立即生效
exportfs -rv
exporting 172.16.7.0/24:/opt/apache-activemq-5.16.3/data/kahadb
(这里的exports可以先不管)
exportfs:NFS服务端发布共享控制命令。
-r:表示重新刷新共享。
-a:表示将配置文件/etc/exports中的所有定义共享发布出去。
-v:显示确认共享设置。
-u:表示不发布共享。
查看nfs服务器挂载情况
showmount -e localhost
Export list for localhost:
/opt/apache-activemq-5.16.3/data/kahadb 172.16.7.0/24
2.从服务器配置
安装NFS服务nfs-untils和rpcbind
yum -y install nfs-utils rpcbind
创建挂载目录(nas目录)
mkdir /data_mq
挂载(注意ip和文件夹位置)
mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=65536,wsize=65536 172.16.7.88:/opt/apache-activemq-5.16.3/data/kahadb /data_mq
添加开机自启动
centos7需要给rc.local赋予执行权限后,rc.local文件才能生效
chmod +x /etc/rc.d/rc.local
vi /etc/rc.d/rc.local
#最后一行添加(必须加这个,不然服务器重启后,该目录没有挂载成功)
mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=65536,wsize=65536 172.16.7.88:/opt/apache-activemq-5.16.3/data/kahadb /data_mq
3.主从服务器nas设置( /data_mq/ 为nas目录 )
cd /opt/apache-activemq-5.16.3/conf
vi activemq.xml
<persistenceAdapter>
<kahaDB directory="/data_mq/"/>
</persistenceAdapter>
4.启动主从,检查主备服务是否配置成功
主服务器:
cd /opt/apache-activemq-5.16.3/bin
./activemq start && tail -f ../data/activemq.log
查看输出日志信息
2021-12-14 17:29:16,769 | WARN | Could not accept connection from tcp://10.128.233.128:41847: Connection reset (Connection reset) | org.apache.activemq.broker.TransportConnector | ActiveMQ BrokerService[localhost] Task-2
从服务器:
cd /opt/apache-activemq-5.16.3/bin
./activemq start && tail -f ../data/activemq.log
查看输出日志信息
2021-12-14 17:23:15,679 | INFO | Using Persistence Adapter: KahaDBPersistenceAdapter[/opt/apache-activemq-5.16.3/data/kahadb] | org.apache.activemq.broker.BrokerService | main
2021-12-14 17:23:15,685 | INFO | Database /opt/apache-activemq-5.16.3/data/kahadb/lock is locked by another server. This broker is now in slave mode waiting a lock to be acquired | org.apache.activemq.store.SharedFileLocker | main
#出现此信息表示主备节点建立成功
Database /opt/apache-activemq-5.16.3/data/kahadb/lock is locked by another server. This broker is now in slave mode waiting a lock to be acquired
模拟主节点故障,停掉主节点mq程序,观察备节点日志输出信息,备用mq打印日志表示切换成功
遇到的问题
每次启动端口都不一致
是因为这个文件有锁,删除就可以了
