首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZooKeeper -动态添加对等点?

ZooKeeper -动态添加对等点?
EN

Stack Overflow用户
提问于 2012-07-07 12:47:53
回答 2查看 8.7K关注 0票数 7

我是ZooKeeper的新手。这就是我需要的。

我有很多同龄人。

  1. t=t_1 -> [peer-1 (Leader), peer-2]上,对等-1是主节点,所有客户端都连接到此节点。
  2. t=t_2 -> [peer-1 (Leader), peer-2, peer-3],稍后的某个时候,对等方3将加入该小组。是否可以“动态”地将对等点-3添加到动物园管理员服务器列表中(即,在对等服务器-1上不重新启动zookeeper )?
  3. t=t_3 -> [peer-3 (Leader), peer-4],经过一段时间,对等-1和对等-2都离开了组(例如,死亡或被关闭)。假设有一种方法可以动态地向组中添加对等方3和对等方4,那么对等方3将成为领导者,并且所有客户端请求都被发送到对等方3。

除了使用ZooKeeper来做这样的事情之外,我还可以使用其他选项吗?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-07 13:41:15

目前,您不能在不重新启动的情况下动态地更改动物园管理员集群的配置。有一个有待解决的问题,动物园管理员-107。本文描述的聚类隶属度算法是非常有趣的,可以找到这里

您可以通过一次重新启动服务器节点1来更改群集的配置。例如,如果集群有服务器A、B、C,并且希望用D替换服务器C,那么您可以这样做,

  • 打倒C
  • 提出D,它的同侪名单是A,B,D
  • 拿下B
  • 将B的同侪名单改为A、B、D
  • 带着B
  • 把A的同侪名单记为A,B,D
  • 带着A
  • 将所有客户端的配置更改为指向A、B、D

在t=t_1,您有一个包含两个动物园管理员节点的集群。这是非常脆弱的,就好像任何一个节点出现故障一样,您将无法建立仲裁(层(N/ 2) + 1),并且集群将不可用。通常,动物园群都是奇数。

我不知道你说什么的时候,

对等方3成为领导者,所有客户请求都被发送给对等方3。

您不能指定动物园管理员集群中的哪个节点是领导者,节点本身将选择其领导人,并且随着节点的上上下下,领导能力将发生变化。此外,客户端通常并不总是连接到领导者,但是给客户端提供集群中的机器列表,并随机连接到其中一台,如果连接到的服务器出现故障,则重新连接。您可以设置leaderServes选项以指定领导者没有服务器客户端连接。

票数 8
EN

Stack Overflow用户

发布于 2015-03-16 19:46:38

我不建议使用上述任何生产情况。以上解决方案只在您可以在所有更改完成之前失去ZK仲裁的情况下才有效。

原因如下:把C拉上来D,它的同侪名单是A,B,D“

->在这一点上A和B不知道D -> D知道A B

所以在这一点上,你只有A和B在法定人数内运作,然后你取下B,你就失去了法定人数。

您将失去对zk数据的访问,直到迁移完成并再次恢复仲裁。大多数设计良好的应用程序使用zk,在这种情况下,故障转移到只读模式,并将优雅地恢复。

动物园管理员-107在动物园管理员3.5下发布之前,你需要明智地选择你。

最好是:

  1. 只需设置一个新的zk合奏(zk集群)
  2. 从快照恢复
  3. 从旧zk集成到新zk集成的镜像应用程序
  4. 迁移完全关闭后,旧zk集成
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11375126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档