思路:
1、持久化消息
2、共享持久化目录kahaDB
3、建立MQ连接时使用failover方式,即:failover:(tcp://localhost:61616,tcp://localhost:61617)
操作:
1、修改activemq.xml配置文件:
a、修改url地址(监听端口,不同机器集群可不修改,默认为61616)
b、修改jetty.xml文件:修改后台管理端口(不同机器集群可不修改,默认为8161)
原理:
将消息持久化到共享目录,多个MQ消息服务器争夺消息锁,获取到锁的为master,未获得锁的为slave,当master挂了时,slave获得锁,未消费的持久化消息转移到获得锁的slave上,此时,该slave成为了master。
说明:以上集群的保障是:持久化的消息被消费后,自动从持久化DB中删除