题目:zk的配置管理 参考答案: 程序分布式的部署在不同的机器上,将程序的配置信息放在zk的znode下,当有配置发生改变时,也就是znode发生变化时,可以通过改变zk中某个目录节点的内容,利用watcher通知给各个客户端,从而更改配置。……
题目:zookeeper集群管理 参考答案: 所谓集群管理无在乎两点:是否有机器退出和加入、选举master。 对于第一点,所有机器约定在父目录下创建临时目录节点,然后监听父目录节点的子节点变化消息。一旦有机器挂掉,该机器与 zookeeper的连接断开,其所创建的临时目录节点被删除,所……
题目:zookeeper分布式锁 参考答案: 有了zookeeper的一致性文件系统,锁的问题变得容易。锁服务可以分为两类,一个是保持独占,另一个是控制时序。 对于第一类,我们将zookeeper上的一个znode看作是一把锁,通过createznode的方式来实现。所有客户端都去创建……
题目:zk队列管理 参考答案: 两种类型的队列: 1、同步队列,当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到达。 2、队列按照 FIFO 方式进行入队和出队操作。 第一类,在约定目录下创建临时目录节点,监听节点数目是否是我们要求的数目。 第二类,和分布式锁服务中的控制时序场景基本原……
题目:zk数据复制 参考答案: Zookeeper作为一个集群提供一致的数据服务,自然,它要在所有机器间做数据复制。 数据复制的好处: 1、容错:一个节点出错,不致于让整个系统停止工作,别的节点可以接管它的工作; 2、提高系统的扩展能力 :把负载分布到多个节点上,或者增加节点来提高系统的负载……
题目:zk中zab的工作原理 参考答案: ZAB 是 ZooKeeper Atomic Broadcast (ZooKeeper 原子广播协议)的缩写,它是特别为 ZooKeeper 设计的崩溃可恢复的原子消息广播算法。ZooKeeper 使用 Leader来接收并处理所有事务请求,并采用 ZAB 协议,将服务器数据的状态变更以事务 Proposal 的形式广播到所有的 Follower 服务器上去。这种主……
题目:zookeeper是如何保证事务的顺序一致性的? 参考答案: zookeeper采用了递增的事务Id来标识,所有的proposal(提议)都在被提出的时候加上了zxid,zxid实际上是一个64位的数字,高32位是epoch(时期; 纪元; 世; 新时代)用来标识leader是否发生……
题目:zk集群下server工作状态 参考答案: 每个Server在工作过程中有四种状态: LOOKING:当前Server不知道leader是谁,正在搜寻 LEADING:当前server角色为leader FOLLOWING:当前server角色为follower OBSERVING:当……
题目:zookeeper是如何选举Leader的? 参考答案: 当leader崩溃或者leader失去大多数的follower,这时zk进入恢复模式,恢复模式需要重新选举出一个新的leader,让所有的Server都恢复到一个正确的状态。Zk的选举算法有两种:一种是基于basic pa……
题目:zookeeper同步流程 参考答案: 选完Leader以后,zk就进入状态同步过程。 Leader等待Follower和Observer连接; Follower连接leader,将最大的zxid发送给leader; Leader根据follower的zxid确定同步点; 完成同步后通……