一、请求、事务和标示符
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的权限
相关推荐
【Zookeeper内部原理详解】 Zookeeper是一个分布式协调服务,它为分布式应用提供了高效且可靠的分布式一致性服务。在尚硅谷的大数据技术系列中,Zookeeper的内部原理主要涵盖以下几个关键知识点: 1. **选举机制**...
### 深入分析Zookeeper实现原理 #### 初识Zookeeper 在深入了解Zookeeper之前,我们先简要介绍下Zookeeper以及它所处的分布式环境的一些特点。 **分布式环境的特点:** - **分布性:** 系统由多个通过网络连接的...
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章ZooKeeper内部原理”和“第10章运行ZooKeeper”深入探讨了ZooKeeper的内部工作原理和运行配置。这包括了请求、事务和标识符的处理,群首选举,Zab协议,观察者模式,服务器构成,本地存储,...
本书分三部分,共10章。第一部分(第1~2章)阐述...第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。
#### 三、Zookeeper 内部原理 **3.1 选举机制(面试重点)** - **半数机制**:集群中半数以上的机器正常运行,集群才能正常工作。因此推荐使用奇数台服务器构建集群,以避免出现选票平分的情况。 - **选举过程**:...
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进行配置。
1.Zookeeper简介 2.Zookeeper节点操作 3.Zookeeper会话机制 4.Zookeeper集群机制 5.Zookeeper请求流程 6.Zookeeper持久化机制 7.Zookeeper监控指标
通过源码分析,读者还能更深入地了解Zookeeper的内部实现机制,这对于开发和调试分布式系统来说是非常宝贵的。 总之,《从Paxos到Zookeeper:分布式一致性原理与实践》是一本全面而实用的教材,无论你是初学者还是...
监听器在ZooKeeper内部是一种轻量级的一次性通知机制。 - **写请求顺序性**:所有的写操作请求都是串行化进行的,即由Leader节点按接收到的顺序来处理。 - **视图一致性**:客户端在每次与ZooKeeper服务交互时,都会...
深入理解Zookeeper的源码可以帮助我们更好地了解其内部工作原理。源码分析涉及网络通信、状态同步、会话管理等多个模块。例如,`QuorumCnxManager`负责网络连接管理,`FollowerRequestProcessor`处理跟随者的请求,`...
书中详细介绍了ZooKeeper的架构设计,包括其内部的数据模型、API用法、故障恢复机制以及客户端与服务器之间的通信协议。读者可以了解到如何在实际项目中应用ZooKeeper来解决分布式锁、分布式队列、分布式配置等问题...