美文网首页
zookeeper的理解

zookeeper的理解

作者: 江南码农 | 来源:发表于2017-05-10 20:32 被阅读0次

    1)用于分布式中一致性处理的框架

    2)zookeeper为主备切换保驾护航

    先来推理一下,主备切换会出现什么问题。传统的主备切换,可以让主备之间维持心跳连接,一旦备机发现主机心跳检测不到了,则自己切换为主机,原来的主机等待救援。这种方式有两个问题,一是由于网络抖动,负载过大等问题,备机检测不到心跳并不能说明主机一定挂了,有可能一定时间后主机或网络恢复,这时候主机并不知道备机已经切换为主机,2台主机互相争用,可能造成脑裂;二是如果一些数据集中在主机上面,则备机切换时由于同步延时势必会损失掉一部分的数据。

    如何解决这些问题?早期的方式提供了不少解决方案,比如备机一旦切换为主机,则通过电源控制直接切断主机电源,简单粗暴,但是此刻备机已经是单点,如果主机是因为量撑不住而挂,那备机有可能会重蹈覆辙,最终导致整个服务不可用。

    zookeeper又是如何解决这个问题的呢?

    zookeeper作为第三方集群参与到主备节点中去,当主备启动时会在zookeeper上竞争创建一个临时锁节点,争用成功者则充当主机,其余备机;

    所有备机会监听该临时锁节点,一旦主机与zookeeper间session失效,则临时节点被删除;

    一旦临时节点被删除,备机开始重新申请创建临时锁节点,重新争用为主机;

    用zookeeper如何解决脑裂?实际上主机争用到节点后通过对根节点做一个ACL权限控制,则其他抢占的机器由于无法更新临时锁节点,只有放弃成为备机。

    3)zookeeper实现服务注册发现

    4)Zookeeper通知机制

    客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知客户端。

    相关文章

      网友评论

          本文标题:zookeeper的理解

          本文链接:https://www.haomeiwen.com/subject/mkogtxtx.html