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

遇到的问题

每次启动端口都不一致

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

相关推荐
Frank_refuel18 小时前
Linux操作系统 - > 进程信号(中)
linux·运维·服务器
阿杜杜不是阿木木19 小时前
authentik开源身份认证与管理平台-与 Jenkins 集成(5)
运维·servlet·jenkins·authing·authentik
cookies_s_s19 小时前
C++ 模板与泛型编程
linux·服务器·开发语言·c++
2401_8920709819 小时前
【Linux C++ 日志系统实战】Logger 日志器完整实现:级别控制、宏封装、动态输出、自动崩溃退出
linux·c++·日志系统
蓝天居士19 小时前
cpio命令详解(1)
linux·cpio
原来是猿19 小时前
Linux进程信号详解(一):信号快速认识
linux·c++·算法
minji...19 小时前
Linux 多线程(二)进程虚拟地址空间&&页表&&物理地址
linux·运维·服务器
liqianpin119 小时前
Nginx WebSocket 长连接及数据容量配置
运维·websocket·nginx
IMPYLH20 小时前
Linux 的 link 命令
linux·运维·服务器·bash
朗道十戒20 小时前
Win11系统下WSL2将Ubuntu24.04安装在其他盘符路径
linux·ubuntu