一、请求、事务和标示符
1、读操作请求:zookeeper 服务器会在本地处理请求,所以zookeeper在处理以只读请求为主要负载时,性能会很高,我们还可以增加更多的服务器到zookeeper集群中,这样可以处理更多的读请求。
2、写操作请求:zookeeper 服务器会将请求转发给leader, leader执行相应的请求,并形成状态的更新,称为一个事务。例如:一个客户端提交了一个对/z节点的setData请求,setData将会改变该znode节点数据信息,并会增加该节点的版本号。
3、zookeeper 集群以事务方式运行,并确保所有的变更操作以原子方式被执行,同时不会被其他事务所干扰。事务是幂等的
4、当leader 产生一个事务,就会为该事务分配一个标示符(zookeeper 会话id),可以在leader所指定的follower执行。
二、群首选举
1、设置leader的目的是为了对客户端所发起的zookeeper状态变更进行排序,包括 create 、setdata,delete操作。 leader 将每一个请求转换为一个事务,将这些事务发送follow,确保集群按照群首确定的顺序接受并处理这些事务。
2、每个服务器启动后进入looking状态,这些服务器会进行通信选举一个群首,在选举过程中胜出的服务器进入leading状态。而集群中其他服务器将进入follering状态。
当一个服务器进入looking状态,就会发送向集群中每个服务器发送一个通知消息,该消息中包括该服务器的投票信息,投票信息中包含 : 服务器标示符(sid)和最近执行的事务的(zxid)信息。
投票规则:
1: 获得其他服务器的投票信息(voteid,votezxid)。
2: 如果(voteZxid > myZxid)或 (votezxid = myzxid 且 voteID > mysid ),保留当前的投票信息。
3: 否则,修改自己的投票信息
三、状态更新的广播协议
当接受到一个写请求操作后,follow会将请求转发给群首,群首将探索性地执行该请求,并将执行结果以事务的方式对状态更新进行广播。通过(Zab 协议)
1、Zab (zookeeper 原子广播协议) :
广播模式 : leader向follower发送一个消息,当一个follower 接受到消息后,回响应leader一个ack消息,leader 会发送消息通知follower 提交。
恢复模式: leader 崩溃时,进入恢复模式。
四、观察者 : 另一类服务器
1、观察者不参与选举过程
2、作用: 提高读请求请求的可扩展性,可以进行跨多个数据中心的部署
五、服务器与会话 :
客户端和zookeeper服务器的连接,zookeeper中的会话叫session,客户端靠与服务器建立一个tcp的长连接来维持一个session,客户端在启动的时候首先会与服务器建立一个tcp连接,通过这个连接,客户端能够通过心跳检测和服务器保持有效的会话,也能向zk服务器发送请求并获得响应。
六、服务器与监视点 (事件监听器): 服务器实现了监视点管理器,它负责管理当前被注册的监视点列表,并负责触发。
七、客户端: 在客户端库中(zookeeper 和 clientcnxn)
八、序列化: 对于网络传输和磁盘保存的序列化的消息和事务。 zookeeper使用了hadoop中的jute来做序列化的
九、ACL策略
1: create 创建子节点的权限
2: read 获得子节点数据和子节点列表的权限
3: write 更新节点数据的权限
4: delete 删除子节点的权限
5: admin 设置节点acl的权限
相关推荐
3.1 选举机制 3.2 节点类型 3.4 监听器原理 3.5 写数据流程
6.4. Zookeeper内部原理 28 6.4.1. 节点类型 29 6.4.2. Stat结构体 29 6.4.3. 监听器原理(面试重点) 30 6.4.4. Paxos算法(扩展) 32 6.4.5. 选举机制(面试重点) 34 6.4.6. 写数据流程 35 6.5. 企业面试真题 37 ...
第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。 购买地址:https://item.jd.com/11880788.html
本书分三部分,共10章。第一部分(第1~2章)阐述...第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。
书分三部分,共10章。第一部分(第1~2章)阐述...第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。
本书分三部分,共10章。第一部分(第1~2章)阐述...第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。
第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。 购买地址:https://item.jd.com/11880788.html
本书分三部分,共10章。第一部分(第1~2章)阐述...第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。
本书分三部分,共10章。第一部分(第1~2章)阐述...第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。
4.Zookeeper——Zookeeper内部原理 5.Zookeeper——Zookeeper实战 三、Hive 1.Hive——Hive概述 2.Hive——Hive数据类型 3.Hive——Hive DDL数据定义 4.Hive——Hive DML数据操作 5.Hive——...
本书分三部分,共10章。第一部分(第1~2章)阐述...第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。
同时,本书深入介绍了分布式一致性问题的工业解决方案——ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法、内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper。...
同时,本书深入介绍了分布式一致性问题的工业解决方案——ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法、内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper。...
《Paxos到Zookeeper:分布式一致性原理与实践》从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议。同时,本书深入介绍了分布式...
同时,本书深入介绍了分布式一致性问题的工业解决方案——ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法、内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper。
但是,Zookeeper 工作时,是由一个节点为 Leader,其他则为 Follower,Leader 是通过内部的选举机制临时产生的。 3、以一个简单的例子来说明选举的过程 假设有五台服务器组成的 Zookeeper 集群,它们的 id 是从 1-5...
《Paxos 到 Zookeeper:分布式一致性原理与实践》从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了 Paxos 和 ZAB 协议。同时,本书深入介绍了...