ActiveMQ新的Master/Slave存储共享机制Replicated LevelDB Store
使用ZooKeeper协调选择一个node作为master。被选择的master broker node开启病接受客户端连接。
其他node转入slave模式,连接master并同步他们的存储状态。
slave不接受客户端连接。所有的存储操作都将被复制到连接至Master的slaves。
如果master死了,得到了最新更新的slave被允许成为master。
fialed node能够重新加入到网络中并连接master进入slave mode
所有需要同步的disk的消息操作都将等待存储状态被复制到其他法定节点的操作完成才能完成。所以,如果你配置了replicas=3,那么法定大小是 (3/2)+1=2. Master将会存储并更新然后等待 (2-1)=1个slave存储和更新完成,才汇报success。至于为什么是2-1,熟悉Zookeeper的应该知道,有一个node要作为观擦者存在。
单一个新的master呗选中,你需要至少保障一个法定node在线以能够找到拥有最新状态的node。这个node将会成为新的master。因此,推荐运行至少3个replica nodes,以防止一个node失败了,服务中断。