ActiveMQ集群
ActiveMQ集群
1.1 何为集群?
集群就是将相同的程序、功能,部署在两台或多台服务器上,这些服务器对外提供的功能是完全一样的。通过不断横向扩展增加服务器的方式,以提高服务的能力 。
1.1.1 不集群模式
1.1.2 集群模式
1.2 集群的优势:
1、集群可以解决单点故障问题;
2、集群可以提高系统服务能力;
1.3 ActiveMQ集群方式
1.shared filesystem Master-Slave方式主从集群
- 通过共享存储目录(kahaDB)来实现master和slave的主从信息备份;
- 所有ActiveMQ的broker都在不断地获取共享目录的控制权,哪个broker抢到了控制权,它就成为master,它将锁定该目 录,其他broker就只能成为slave;
- 当master主出现故障后,剩下的slave从将再进行争夺共享目录的控制权,谁抢到共享目录的控制权,谁就成为主;
- 由于他们是基于共享目录,所以当主出现故障后,其上没有被消费的消息在接下来产生的新的master主中可以继续进行 消费;
2.shared database Master-Slave方式主从集群
该方式与shared filesystem方式类似,只是共享的存储介质由文件系统改成了数据库。
![SouthEast 3][]
3.Replicated LevelDB Store方式集群
- 基于可复制的LevelDB存储方式的集群
- 这种集群方式是ActiveMQ5.9以后才新增的特性,它使用ZooKeeper从一组broker中协调选择一个broker作为master,其 他broker转入slave模式;
- 所有slave从节点通过复制master主节点的消息来实现信息同步,当主出现故障后,没有被消费的消息在从服务器上也同 步了一份,所以不会有信息的丢失;
- LevelDB 是 Google开发的一套用于持久化数据的高性能类库,ActiveMQ利用该类库进行数据的存储;
- 只有master 接受客户端连接,slave不接受客户端连接;
- Master的所有存储操作都将被复制到slaves;
- 在这个模式中,需要有半数以上的broker是正常的,集群才是可用的,超过半数broker故障,zookeeper的选举算法将不 能选择master,从而导致集群不可用;
还没有评论,来说两句吧...