脑裂就是由原来只有一个做决策的大脑突然间变成了由多个同时做决策,而这多个大脑在做决策时,因为互相之间的信息并不同步而导致的决策之间发生冲突进而让分布式系统的管理陷入到一种混乱的局面,分布式系统中引入了多个管理者同时做决策的现象就叫脑裂。
为什么会出现脑裂呢?分布式是大数据技术的核心思想,会出现还没等这个为主的领导挂掉,秘书就会搞一些小动作做一些类似夺权的行为,也开始对下面的小弟发号施令。
如何避免这种不合理的夺权行为发生呢?需要用可信任的第三方机构,由它来裁决谁是真正的领导,而谁只能暂时充当秘书,什么时候通过权力交接,都由第三方机构说了算。
第三方机构一般叫协调者,最出名且使用最广泛的就是zookeeper;如何预防分布式系统中的脑裂问题?想要公平公正的确定一个组织架构中谁才是符合要求的领导者,谁是秘书,协调者本身就必须得具备公平公正的条件;zookeeper有个强一致性算法也叫ZAB算法,给zookeeper提供了这种可信任的公平公正的基础;可分布式系统为了不让因为单个管理者挂掉而让整个系统陷入群龙无首的尴尬情况,于是会给分布式系统配置两个管理者,但是在集群正常运行时,只能一个为主另一个为辅,但在实际工作中如果大家都想当这个为主的领导;zookeeper有自己的默认策略就是比速度,看谁先向它提出当领导的申请,谁的速度快谁就暂时为主另一个当秘书。
具体的技术实现是两个预备领导都会向zookeeper的同一个地方写数据,但是因为ZAB算法的策略,限制了zookeeper在同一时间只能接受一个写请求,zookeeper的写请求处理方式是单线程的,这一点和redis很像,有一个先写进那就是领导,另一个就是秘书;如果某一刻这个领导挂了,zookeeper马上将秘书转成领导接任工作,技术实现就是在位的领导要把数据不间断的往某个地方写数据,zookeeper发现在位领导有段时间没往这个地方写数据了,就会取消当前的领导管理资格,将权力给秘书,并通知所有小弟系统进行了领导更换,让整个分布式系统处于一个持续可用的状态。
标签:懂吗,秘书,zookeeper,领导,决策,脑裂,分布式系统 From: https://blog.csdn.net/2301_79551573/article/details/137026130