Sou*_*nta 6 p2p dynamic master-slave apache-zookeeper
我是ZooKeeper的新手.这就是我需要的.
我有一个同龄人的网络.
在t=t_1 -> [peer-1 (Leader), peer-2]
peer-1是master,所有客户端都连接到此节点.
在t=t_2 -> [peer-1 (Leader), peer-2, peer-3]
稍后的某个时间,peer-3加入了该组.是否可以"动态"将peer-3添加到zookeeper服务器列表中(即,无需在peer-1上重新启动ZooKeeper)?
在t=t_3 -> [peer-3 (Leader), peer-4]
一段时间后,peer-1和peer-2都离开了组(例如,死亡或关闭.)假设有一种方法可以将peer-3和peer-4动态添加到组peer-3成为领导者并且所有客户端请求都发送到peer-3.
除了使用ZooKeeper做这样的事情之外,我还能使用其他任何选项.
谢谢.
目前,您无法在不重新启动的情况下动态更改zookeeper群集的配置.有一个未解决的问题需要解决这个问题,ZOOKEEPER-107.描述集群成员算法的论文非常有趣,可以在这里找到.
您可以通过一次重新启动服务器节点1来更改群集的配置.例如,如果您的群集有服务器A,B,C,并且您想要用D替换服务器C,那么您可以执行类似的操作,
在t = t_1,您有一个包含2个zookeeper节点的集群.这非常脆弱,就好像任一节点出现故障,您将无法建立仲裁(楼层(N/2)+ 1),并且群集将不可用.通常,zookeeper集群是奇数.
当你说时,我不确定你要做什么
peer-3成为领导者,所有客户端请求都发送到peer-3.
您无法指定zookeeper群集中的哪个节点是领导者,节点本身将选择其领导者,并且领导将随着节点上下变化而变化.同样,客户端通常并不总是连接到领导者,但是客户端被给予群集中的计算机列表,并且随机连接到一个,如果他们连接的服务器关闭则重新连接.您可以设置leaderServes选项以指定领导者不服务客户端连接.