`

zookeeper 内部原理

 
阅读更多

一、请求、事务和标示符

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的权限

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    03_尚硅谷大数据之Zookeeper内部原理1

    3.1 选举机制 3.2 节点类型 3.4 监听器原理 3.5 写数据流程

    第6章 Zookeeper 2 6.1. Zookeeper入门 2 6.1.1. 概述 2 6.1.2. 特点 3 6.1.3

    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 ...

    ZooKeeper-分布式过程协同技术详解.pdf

    第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。 购买地址:https://item.jd.com/11880788.html

    ZooKeeper-分布式过程协同技术详解

    本书分三部分,共10章。第一部分(第1~2章)阐述...第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。

    ZooKeeper:分布式过程协同技术详解

    书分三部分,共10章。第一部分(第1~2章)阐述...第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。

    ZooKeeper-分布式过程协同技术详解 pdf

    本书分三部分,共10章。第一部分(第1~2章)阐述...第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。

    ZooKeeper-分布式过程协同技术详解 PDF 高清完整版

    第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。 购买地址:https://item.jd.com/11880788.html

    ZooKeeper-分布式过程协同技术详解(文字完整版)

    本书分三部分,共10章。第一部分(第1~2章)阐述...第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。

    ZooKeeper-分布式过程协同技术详解(附code)

    本书分三部分,共10章。第一部分(第1~2章)阐述...第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。

    大数据学习指南合集(Hadoop、Spark、Flink等)

      4.Zookeeper——Zookeeper内部原理   5.Zookeeper——Zookeeper实战 三、Hive   1.Hive——Hive概述   2.Hive——Hive数据类型   3.Hive——Hive DDL数据定义   4.Hive——Hive DML数据操作   5.Hive——...

    ZooKeeper:分布式过程协同技术详解 [美] Flavio Junqueira,Benjamin Reed 著,谢超 译

    本书分三部分,共10章。第一部分(第1~2章)阐述...第三部分(第9~10章)主要介绍ZooKeeper内部原理及如何运行ZooKeeper.第9章介绍ZooKeeper的作者们在设计时所采用的方案。第10章介绍如何对ZooKeeper进行配置。

    Paxos到Zookeeper:分布式一致性原理与实践

    同时,本书深入介绍了分布式一致性问题的工业解决方案——ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法、内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper。...

    从Paxos到Zookeeper

    同时,本书深入介绍了分布式一致性问题的工业解决方案——ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法、内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper。...

    从Paxos到Zookeeper 分布式一致性原理与实践

    《Paxos到Zookeeper:分布式一致性原理与实践》从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议。同时,本书深入介绍了分布式...

    (源码)从Paxos到Zookeeper:分布式一致性原理与实践

    同时,本书深入介绍了分布式一致性问题的工业解决方案——ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法、内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper。

    Zookeeper中几个重要的内部原理

    但是,Zookeeper 工作时,是由一个节点为 Leader,其他则为 Follower,Leader 是通过内部的选举机制临时产生的。 3、以一个简单的例子来说明选举的过程 假设有五台服务器组成的 Zookeeper 集群,它们的 id 是从 1-5...

    Paxos 到 Zookeeper:分布式一致性原理与实践 高清

    《Paxos 到 Zookeeper:分布式一致性原理与实践》从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了 Paxos 和 ZAB 协议。同时,本书深入介绍了...

Global site tag (gtag.js) - Google Analytics