ActiveMQ多节点集群-基于zookeeper + replicated-leveldb-store的主从集群

一、原理说明

官网地址:http://activemq.apache.org/replicated-leveldb-store

原理图:

image

原理说明:

1)使用Zookeeper集群注册所有的ActiveMQ Broker,但只有其中一个Broker可以提供服务,它将被视为Master,其他的Broker处于待机状态被视为Slave。如果Master因故障而不能提供服务,Zookeeper会从Slave中选举出一个Broker充当Master。

2)Slave连接Master并同步他们的存储状态,Slave不接受客户端连接。所有的存储操作都将被复制到连接至Maste的Slaves。

3)如果Master宕机得到了最新更新的Slave会变成Master。故障节点在恢复后会重新加入到集群中并连接Master进入Slave模式。
 
4)所有需要同步的消息操作都将等待存储状态被复制到其他法定节点的操作完成才能完成。所以,如给你配置了replicas=3,name法定大小是(3/2)+1 = 2。Master将会存储更新然后等待(2-1)=1个Slave存储和更新完成,才汇报success。有一个node要作为观察者存在。当一个新的Master被选中,你需要至少保障一个法定mode在线以能够找到拥有最新状态的ode,这个node才可以成为新的Master。因此,推荐运行至少3个replica nodes以防止一个node失败后服务中断。

二、集群规划

主机 zookeeper集群端口 zookeeper安装目录 AMQ集群bind端口 AMQ消息tcp端口 AMQ管理控制台端口 AMQ安装目录
10.0.0.11 2191 /data/app/zookeeper bind=”tcp://0.0.0.0:63631” 61616 8161 /data/app/activemq
10.0.0.12 2192 /data/app/zookeeper bind=”tcp://0.0.0.0:63632” 61617 8162 /data/app/activemq
10.0.0.13 2193 /data/app/zookeeper bind=”tcp://0.0.0.0:63633” 61618 8263 /data/app/activemq

猜你喜欢

转载自www.cnblogs.com/hujinzhong/p/12538853.html