[英]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中的领导者选举时,有两件事不同:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.