号外号外!《死磕 Java 并发编程》系列连载中,大家可以关注一波:
「死磕 Java 并发编程05」阿里面试失败后,一气之下我图解了Java中18把锁
「死磕 Java 并发编程04」说说Java Atomic 原子类的实现原理
「死磕 Java 并发编程03」阿里二面,面试官:说说 Java CAS 原理?
「死磕 Java 并发编程02」面试官:说说什么是 Java 内存模型(JMM)?
「死磕 Java 并发编程01」10张图告诉你Java并发多线程那些破事
目录
Zookeeper
是一个分布式服务框架,主要是用来解决分布式应用中遇到的一些数据管理问题如:统一命名服务
、状态同步服务
、集群管理
、分布式应用配置项的管理
等。
我们可以简单把 Zookeeper
理解为分布式家庭的大管家,那么管家团队是如何选出Leader
的呢?好奇吗,接下来带领大家一探究竟。
人类选举的基本原理
讲解 Zookeeper
选举过程前先来介绍一下人类的选举。
我们每个人或多或少都经历过几次选举,在投票的过程中可能会遇到这样几种情况:
情况1:自己与几个候选人都比较熟,你会将票投给你认为 能力比较强的人
;

情况2:自己也是候选人,并且与其他几个候选人都不熟,这个时候你肯定想着要去拉票,因为觉得自己才是最厉害的人呀,所有人都应该把票投给我。但是遗憾的是在拉票的过程中,你发现 别人比你强
,你开始自卑了,最终还是把票投给了自己认为最强的人。

所有人都投完票之后,最后从投票箱中进行统计,获得票数最多的人当选。