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打印日志表示切换成功

遇到的问题

每次启动端口都不一致

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

相关推荐
小白鸽i44 分钟前
【LINUX】将源码驱动文件编译并生效
linux·运维·服务器
做萤石二次开发的哈哈1 小时前
萤石开放平台 音视频 | 产品概述
运维·服务器·萤石云·萤石·萤石开放平台
0思必得01 小时前
[Web自动化] 处理爬虫异常
运维·爬虫·python·selenium·自动化·web自动化
胡斌附体2 小时前
linux(ubuntu)拉取源码进行docker容器部署
linux·git·ubuntu·docker·node·nvm
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [drivers][base]platform
linux·笔记·学习
永不复还2 小时前
linux 使用X11监听键盘鼠标输入
linux·x11
China_Yanhy3 小时前
我的区块链运维日记 · 第 4 日:死掉的“活”节点 —— 攻克“同步滞后(Lag)”
运维·区块链
kida_yuan3 小时前
【Linux】说说我对 Wine 与 deepin-wine 的理解
linux·运维·wine
嵌入小生0073 小时前
基于Linux系统下的C语言程序错误及常见内存问题调试方法教程(嵌入式-Linux-C语言)
linux·c语言·开发语言·嵌入式·小白·内存管理调试·程序错误调试
松涛和鸣3 小时前
DAY63 IMX6ULL ADC Driver Development
linux·运维·arm开发·单片机·嵌入式硬件·ubuntu