Linux下搭建Activemq的Master-Slave(共享文件模式)

注释:这里演示的是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打印日志表示切换成功

遇到的问题

每次启动端口都不一致

是因为这个文件有锁,删除就可以了

相关推荐
早睡冠军候选人10 小时前
Ansible学习----管理复杂的 Play 和 Playbook 内容
运维·学习·云原生·ansible
Robpubking13 小时前
AWS 中 S3 的 server-side encryption 解释与说明
运维·aws
福旺旺13 小时前
Linux——解压缩各类文件
linux
MasterLi802315 小时前
我的读书清单
android·linux·学习
ha204289419416 小时前
Linux操作系统学习之---初识网络
linux·网络·学习
飞凌嵌入式16 小时前
【玩转多核异构】T153核心板RISC-V核的实时性应用解析
linux·嵌入式硬件·嵌入式·risc-v
陌路2016 小时前
Linux 34TCP服务器多进程并发
linux·服务器·网络
玉树临风江流儿16 小时前
Linux驱动开发实战指南-中
linux·驱动开发
爱喝矿泉水的猛男16 小时前
单周期Risc-V指令拆分与datapath绘制
运维·服务器·risc-v
hakukun16 小时前
docker避免每次sudo方法
运维·docker·容器