共计 1425 个字符,预计需要花费 4 分钟才能阅读完成。
ActiveMQ 基于共享文件系统的 HA 方案
配置 NFS 服务器
yum install nfs-utils rpcbind
设置共享目录,编辑 /etc/exports
/home/mqsharedata 192.168.41.199(rw,sync,no_root_squash)
/home/mqsharedata 192.168.41.199(rw,sync,no_root_squash)
启动 NFS 服务器
service rpcbind start
chkconfig rpcbind on
service nfs start
配置 NFS 客户端
yum install nfs-utils portmap(适用 CentOS 5)
yum install nfs-utils rpcbind(适用 centos 6)
检查可挂载文件系统
showmount -e 192.168.188.143
挂载文件系统
mount -t nfs 192.168.188.143:/home/mqsharedata /home/mqsharedata -o nolock
调整消息中间件的配置文件
修改 activemq.xml
<persistenceAdapter>
<kahaDB directory=”/home/mqsharedata”/>
</persistenceAdapter>
使用 failover 作为连接串
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
“failover:(tcp://192.168.41.197:61616,tcp://192.168.41.198:61616)”);
原理
基于共享文件系统的原理还是比较简单的,因为 activemq 在启动的时候会锁住 lock 文件,当 Master 起来了之后,slaver 自然就在那里等待了
当 Master 倒下之后,lock 文件的锁会被释放,然后其中一个 slaver 就锁定了 lock 文件,作为 Master 存在了
当倒下的 Master 起来了之后,由于 lock 文件已经被锁定,所以它也只能乖乖地去当 slaver 了,至于数据嘛。。共享存储,反正数据就在那里
推荐阅读:
Linux 系统下 ActiveMQ 安装 http://www.linuxidc.com/Linux/2012-03/55623.htm
Ubuntu 下的 ACTIVEMQ 服务器 http://www.linuxidc.com/Linux/2008-07/14587.htm
CentOS 6.5 启动 ActiveMQ 报错解决 http://www.linuxidc.com/Linux/2015-08/120898.htm
Spring+JMS+ActiveMQ+Tomcat 实现消息服务 http://www.linuxidc.com/Linux/2011-10/44632.htm
Linux 环境下面 ActiveMQ 端口号设置和 WEB 端口号设置 http://www.linuxidc.com/Linux/2012-01/51100.htm
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-10/123797.htm