ActiveMQ进行高可用架构可以采用主从方式(Master-Slave)或负载均衡(集群)方式。
1. 主从模式
Master-Slave方式中,只能是Master提供服务,Slave是实时地备份Master的数据,以保证消息的可靠性。当Master失效时,Slave会自动升级为Master,客户端会自动连接到Slave上工作。主从模式,可以使用如下方式实现:
1.1. 基于共享文件(Shared File System Master Slave)
这种方式Slave的个数没有限制,哪个ActiveMQ实例先获取共享文件的锁,那个实例就是Master,其它的ActiveMQ实例就是Slave,当当前的Master失效,其它的Slave就会去竞争共享文件锁,谁竞争到了谁就是Master。此模式结构图如下:
1.2. 基于数据库(JDBC Master Slave)
JDBC Master Slave模式和Shared File Sysytem Master Slave模式的原理是一样的,只是把共享文件系统换成了共享数据库。
1.3. 基于zookeeper
此种模式通过zookeeper做为服务选取器来选择activemq作为master,稍后会进行具体介绍。