繁体   English   中英

当ZooKeeper在ZooKeeper服务器之间进行领导者选举时,馆长为什么在“流程”中进行领导者选举?

[英]Why does Curator does Leader Election among 'Process' when ZooKeeper has a Leader Election among ZooKeeper Servers?

我最近了解了ZooKeeper及其设计。 我了解多个ZooKeeper服务器都支持ZooKeeper服务,但是,有必要选择其中一台服务器作为组的领导者。

接下来,我开始介绍LeaderCatch和LeaderElection的Apache Curator配方,而不是谈论选择领导者,而是谈论选择流程作为领导者(组织者)。

我对此感到困惑。 有人可以帮我澄清一下策展人食谱和ZooKeeper为什么谈论两种不同的Leader吗?

如果确实不同,那么这些领导人之间是如何联系的?

ZooKeeper的用户并不关心拥有领导者的ZooKeeper集群。 其实现细节。 ZooKeeper服务器在彼此之间选出一个领导者,以此作为实施ZooKeeper服务所提供的某些一致性保证的一种方式。

您作为ZooKeeper的用户(或将Curator作为更好的API的用户)并不在乎。 实际上,ZK并未公开此实现细节-您不知道您是在与领导者还是跟随者进行对话。

ZK内部领导者选举与服务提供者用例ZooKeeper无关-ZooKeeper用户的领导者选举。

如果使用的是ZK,则可能是您自己构建了一个分布式服务,您的服务分布在多台计算机上。 与任何其他分布式系统一样,您有时可能会遇到一个问题(例如,任务协调),这通常可以通过领导者选举模式来解决:

在这种情况下,您可以自己实施所列的算法之一。 更好的是,您可以使用ZooKeeper之类的协调服务。 在ZK API中,您可以使用顺序节点和临时节点来实现领导者选举。 看一下这个食谱:

如您所见,使用裸机ZK api实施该食谱并非易事,因此Curator提供了更好的包装器,使您更轻松。

总而言之,当谈到ZooKeeper中的领导者选举时,有两件事不同:

  • ZK服务器之间在内部完成的领导者选举,作为实现强大一致性的一种机制
  • 领导者选举作为ZooKeeper用户提供的功能,需要使用ZK原语手动实现,或用作Curator库中的可用配方

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM