ActiveMQ基于文件共享的主从配置方案

假设两台装有activeMq服务的服务器分别为:
	192.160.102.90
	192.168.102.91 

并打算将91上activeMq目录的数据存储目录共享给90的activeMq服务。


91上配置:

1、安装NFS服务和rpcbind服务,服务器上一般都安装了这两个服务,可以使用命令"service nfs status"和"service rpcbind status"查看这两个服务是否已启动。如果系统中的确没有安装这两个服务,请先安装。

2、修改nfs的共享配置文件:/etc/exports
# 文件路径
/usr/local/apache-activemq-5.7.0/data/kahadb 192.168.102.90(rw,no_root_squash)

其中/usr/local/apache-activemq-5.7.0/data/kahadb 为要共享的文件夹:192.168.102.90 为可以访问该文件夹的地址(支持通配符*,如可以配置为192.168.102.*);rw表示支持读写操作;no_root_squash表示客户机以root身份访问时映射为本机的nobody用户,这个参数很重要,必须指定,否则可能报没有权限访问的错误。    

3、关闭防火墙(service iptables stop)或者将相关端口启用(可以使用rpcinfo -p 192.168.102.91查看需要开启的端口号)。

4、重新启动nfs服务和rpcbind服务。

90上配置:

1、同91上1的配置。

2、创建目录/data/activemq

3、修改activeMq的配置文件conf/activemq.xml,将
	
            
        
修改为:
  	
            
           

即 将activeMq的数据文件存储目录修改为第2步创建的目录:/data/activemq。

4、检查可以挂载的文件系统:showmount -e 192.168.102.91系统会列出可以挂在的文件
Export list for 192.168.102.91:
/usr/local/apache-activemq-5.7.0/data/kahadb 192.168.102.90

5、挂载文件系统
mount -t nfs 192.168.102.91:/usr/local/apache-activemq-5.7.0/data/kahadb /data/activemq

该命令就将91上目录/usr/local/apache-activemq-5.7.0/data/kahadb挂载到本机目录/data/activemq上。
当然,最后将该目录自动挂载,避免系统重启后需手动挂载。自动挂载即修改配置文件/etc/fstab

这样,主从配置完成。
修改代码中的brokerURL:failover://(tcp://192.168.102.90:61616,tcp://192.168.102.91:61616),启用断线重连机制。

这样当kill掉90的activeMq时,系统就自动连接到91上了。如果启动90后,还想让其连接到90上,kill掉91的activeMq即可。

注意:

1、共享文件的主从配置,是通过文件共享锁来实现的。先拿到文件锁的服务就是master,其它为slave服务,slave服务默认每10秒试图拿一次文件锁,可以查看activeMq的控制台。

2、只有master的控制台(如http://192.168.102.91:8161/admin)能够访问,slave的控制台不能访问,原因就是slave没有拿到文件锁,不能访问文件。


你可能感兴趣的:(Java)