ActiveMQ集群
1.1 何为集群?
集群就是将相同的程序、功能,部署在两台或多台服务器上,这些服务器对外提供的功能是彻底同样的。经过不断横向扩展增长服务器的方式,以提升服务的能力
。
1.1.1 不集群模式
1.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方式相似,只是共享的存储介质由文件系统改为了数据库。
3.Replicated LevelDB Store方式集群
spa
- 基于可复制的LevelDB存储方式的集群
- 这种集群方式是ActiveMQ5.9之后才新增的特性,它使用ZooKeeper从一组broker中协调选择一个broker做为master,其 他broker转入slave模式;
- 全部slave从节点经过复制master主节点的消息来实现信息同步,当主出现故障后,没有被消费的消息在从服务器上也同 步了一份,因此不会有信息的丢失;
- LevelDB 是 Google开发的一套用于持久化数据的高性能类库,ActiveMQ利用该类库进行数据的存储;
- 只有master 接受客户端链接,slave不接受客户端链接;
- Master的全部存储操做都将被复制到slaves;
- 在这个模式中,须要有半数以上的broker是正常的,集群才是可用的,超过半数broker故障,zookeeper的选举算法将不 能选择master,从而致使集群不可用;
-