zookeeper原理(转)ITeye - 娱乐之横扫全球

zookeeper原理(转)ITeye

2019年03月13日10时04分04秒 | 作者: 涵煦 | 标签: 节点,集群,一个 | 浏览: 3064

Follower的作业流程简图如下所示,在实践完成中,Follower是经过5个线程来完成功用的。



 

关于observer的流程不再叙说,observer流程和Follower的仅有不同的当地就是observer不会参与leader建议的投票。


干流运用场景:

Zookeeper的干流运用场景完成思路(除掉官方示例) 

(1)装备办理
会集式的装备办理在运用集群中对错常常见的,一般商业公司内部都会完成一套会集的装备办理中心,应对不同的运用集群关于同享各自装备的需求,而且在装备改变时能够告诉到集群中的每一个机器。

Zookeeper很简略完成这种会集式的装备办理,比方将APP1的一切装备装备到/APP1 znode下,APP1一切机器一发动就对/APP1这个节点进行监控(zk.exist("/APP1",true)),而且完成回调办法Watcher,那么在zookeeper上/APP1 znode节点下数据发生改变的时分,每个机器都会收到告诉,Watcher办法将会被执行,那么运用再取下数据即可(zk.getData("/APP1",false,null));

以上这个比方仅仅简略的粗颗粒度装备监控,细颗粒度的数据能够进行分层级监控,这一切都是能够规划和操控的。     

 
(2)集群办理 
运用集群中,咱们常常需求让每一个机器知道集群中(或依靠的其他某一个集群)哪些机器是活着的,而且在集群机器由于宕机,网络断链等原因能够不在人工介入的情况下敏捷告诉到每一个机器。

Zookeeper相同很简略完成这个功用,比方我在zookeeper服务器端有一个znode叫/APP1SERVERS,那么集群中每一个机器发动的时分都去这个节点下创立一个EPHEMERAL类型的节点,比方server1创立/APP1SERVERS/SERVER1(能够运用ip,确保不重复),server2创立/APP1SERVERS/SERVER2,然后SERVER1和SERVER2都watch /APP1SERVERS这个父节点,那么也就是这个父节点下数据或许子节点改变都会告诉对该节点进行watch的客户端。由于EPHEMERAL类型节点有一个很重要的特性,就是客户端和服务器端衔接断掉或许session过期就会使节点消失,那么在某一个机器挂掉或许断链的时分,其对应的节点就会消失,然后集群中一切对/APP1SERVERS进行watch的客户端都会收到告诉,然后获得最新列表即可。

别的有一个运用场景就是集群选master,一旦master挂掉能够立刻能从slave中选出一个master,完成过程和前者相同,仅仅机器在发动的时分在APP1SERVERS创立的节点类型变为EPHEMERAL_SEQUENTIAL类型,这样每个节点会主动被编号

咱们默许规则编号最小的为master,所以当咱们对/APP1SERVERS节点做监控的时分,得到服务器列表,只需一切集群机器逻辑以为最小编号节点为master,那么master就被选出,而这个master宕机的时分,相应的znode会消失,然后新的服务器列表就被推送到客户端,然后每个节点逻辑以为最小编号节点为master,这样就做到动态master推举。


 

Zookeeper 监督(Watches) 简介

Zookeeper C API 的声明和描绘在 include/zookeeper.h 中能够找到,别的大部分的 Zookeeper C API 常量、结构体声明也在 zookeeper.h 中,假如假如你在运用 C API 是遇到不明白的当地,最好看看 zookeeper.h,或许自己运用 doxygen 生成 Zookeeper C API 的协助文档。

Zookeeper 中最有特征且最不简略了解的是监督(Watches)。Zookeeper 一切的读操作——getData(), getChildren(), 和 exists() 都 能够设置监督(watch),监督事情能够了解为一次性的触发器, 官方界说如下: a watch event is one-time trigger, sent to the client that set the watch, which occurs when the data for which the watch was set changes。对此需求作出如下了解:

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章