Zookeeper
木棉上的光
公众号:不止于Java
Github:https://github.com/cyxpdc?tab=repositories
邮箱:1142439493@qq.com
展开
-
Watch机制原理解析
来源:《从Paxos到Zookeeper》https://www.cnblogs.com/GrimMjx/p/10922480.htmlhttps://blog.csdn.net/huyangyamin/article/details/77743624https://www.bilibili.com/video/av32715941?from=search&seid=9380652...原创 2019-10-26 13:20:47 · 1794 阅读 · 0 评论 -
Leader选举算法源码总结
emmm建议大家边看源码边看此文章啊哈,有点高度总结1到7为一些属性的说明,8的lookForLeader就是核心算法FastLeaderElection.java1finalizeWait = 200,决定一个选举过程需要等待的选举时间,一经到达,它将结束leader选举;实际是等待其他server发送通知的超时时间;可以延长,依次*2,但不会超过maxNotificationInt...原创 2019-10-16 10:38:45 · 544 阅读 · 0 评论 -
《从Paxos到ZooKeeper》第七章总结九-2:ZooKeeper技术内幕之存储
继《从Paxos到ZooKeeper》第七章总结九-1:ZooKeeper技术内幕之数据9.4 初始化含义:9.4.1 初始化流程FileTxnSnapLog:PlayBackListener:9.5 数据同步集群完成Leader选举之后,Learner会向Leader服务器进行注册,注册完成之后,就进入数据同步环节,即Leader服务器将那些没有在Learner服务器上提交...原创 2019-07-22 10:23:56 · 109 阅读 · 0 评论 -
《从Paxos到ZooKeeper》第七章总结九-1:ZooKeeper技术内幕之数据
9 数据与存储数据存储分为两部分:内存、磁盘数据存储9.1 内存数据ZooKeeper就像一个内存数据库(ZKDatbase)一样,存储了整颗节点树的内容,包括所有的节点路径、节点数据及其ACL信息等;ZooKeeper会定时将这个数据存储到磁盘上数据结构:DataTree、DataNode对于临时节点,为了便于实时访问和及时清理,DataTree单独将临时节点保存起来:priva...原创 2019-07-22 10:22:56 · 112 阅读 · 0 评论 -
《从Paxos到ZooKeeper》第七章总结八:ZooKeeper技术内幕之请求处理
8 请求处理针对客户端的一次请求,ZooKeeper处理如下8.1 会话创建请求会话创建请求中服务端的流程图:分为请求接收、会话创建、预处理、事务处理、事务应用、会话响应六个环节8.1.1 请求接收1.IO层接收来自客户端的请求2.判断是否是客户端”会话创建“请求3.反序列化ConnectRequest请求4.判断是否是ReadOnly客户端5.检查客户端ZXID...原创 2019-07-19 23:01:14 · 124 阅读 · 0 评论 -
《从Paxos到ZooKeeper》第七章总结三:ZooKeeper技术内幕之客户端
3 客户端核心组件:整体结构:初始化和启动过程大体分为3个步骤:3.1 一次会话的创建过程接下来使用文字来解析流程图:分为三个阶段初始化阶段:ZooKeeper、Watcher、HostProvider、ClientCnxn、SendThread、EventThread会话创建阶段响应处理阶段接下来讲解具体组件3.2 服务器地址列表服务器列表是一个使用英文状...原创 2019-07-17 10:31:14 · 118 阅读 · 0 评论 -
《从Paxos到ZooKeeper》第七章总结二:ZooKeeper技术内幕之序列化与协议
2 序列化与协议ZooKeeper使用了Jute序列化组件来进行序列化/反序列化操作2.1 Jute使用Jute进行序列化/反序列化操作的步骤:2.2 通信协议基于TCP/IP实现了自己的通信协议来完成客户端与服务端、服务端与服务端之间的网络通信请求和响应的结构体:2.2.1 协议解析:请求部分”获取节点数据“请求为例的完整协议定义:2.2.1.1 请求头:RequestH...原创 2019-07-17 09:31:02 · 103 阅读 · 0 评论 -
《从Paxos到ZooKeeper》第七章总结七:ZooKeeper技术内幕之服务器角色
7 服务器角色介绍分别有Leader、Follower和Observer三种类型7.1 Leader主要工作:7.1.1 请求处理链每一个服务器启动的时候,都会进行请求处理链的初始化;此处使用了责任链模式:7个请求处理器组成了此链,功能如下:7.1.2 LearnerHandlerLeader服务器的管理器,Leader服务器会与每一个Follower/Observer服务...原创 2019-07-19 10:18:30 · 108 阅读 · 0 评论 -
《从Paxos到ZooKeeper》第七章总结六:ZooKeeper技术内幕之Leader选举
6 Leader选举6.1 Leader选举概述6.1.1 服务器启动时期的Leader选举触发条件:集群中至少有两台能够互相通信的机器Leader选举流程:这里以3台为例,当第二台机器Server2启动后,第一、二台机器都试图找到一个Leader,于是进入Leader选举流程:6.1.2 服务器运行期间的Leader选举Leader如果挂了,则进入新一轮的选举,过程与启动时期的选...原创 2019-07-18 21:32:28 · 114 阅读 · 0 评论 -
《从Paxos到ZooKeeper》第七章总结五:ZooKeeper技术内幕之服务器的启动
5 服务器启动服务端整体结构:分为单机版的启动和集群版的启动,接下来逐一介绍5.1 单机版服务器启动大致分为五个步骤:配置文件解析、初始化数据管理器、初始化网络IO管理器、数据恢复、对外服务,其流程图如下:5.1.1 预启动:流程图第一列5.1.2 初始化:流程图第二、三列5.2 集群版服务器启动与单机版的步骤大部分相同,只讲解差异部分流程图:5.2.1 预启动...原创 2019-07-18 17:19:50 · 108 阅读 · 0 评论 -
《从Paxos到ZooKeeper》第七章总结一:ZooKeeper技术内幕之系统模型
1 系统模型1.1 数据模型视图结构类似一棵树,每个数据节点称为ZNode,是ZooKeeper中数据的最小单元事务ID:ZXID1.2 数据节点特性分为持久节点、临时节点、顺序节点,可以组成生成以下四种:数据节点保存的内容:存储数据内容和数据节点本身的一些状态信息,如事务ID、版本信息、子节点个数等1.3 版本-保证分布式数据原子性操作数据节点具有三种类型的版本信息:...原创 2019-07-16 10:55:33 · 149 阅读 · 0 评论 -
《从Paxos到ZooKeeper》第七章总结四:ZooKeeper技术内幕之会话
4 会话ZooKeeper的连接与会话就是客户端通过实例化ZooKeeper对象来实现客户端与服务器创建并保持TCP连接的过程(以Java为例)4.1 会话状态客户端与服务端成功完成连接创建之后,就建立了一个会话会话在其生命周期中,会在不同的会话状态之间进行切换这些状态一般可以分为:CONNECTING、CONNECTED、RECONNECTING、RECONNECTED、CLOSE等...原创 2019-07-18 10:04:24 · 115 阅读 · 0 评论 -
ZooKeeper在大型分布式系统中的应用
1.HadoopZooKeeper在Hadoop中的作用:Yarn中的ZooKeeper1.1 ResourceManager HAYarn的HA架构:Active/Standby模式1.1.1 主备切换实现原理:使用基于ZooKeeper实现的ActiveStandbyElector组件来确定ResourceManager为active还是standby1.1.2 Fencin...原创 2019-07-14 10:40:43 · 496 阅读 · 0 评论 -
Zookeeper典型应用场景及实现二
继Zookeeper典型应用场景及实现一5 集群管理两部分:集群监控、集群控制使用zookeeper来进行集群管理的好处:例子:分布式日志收集系统设计:需要收集的日志机器(日志源机器)分为多个组别,一个组别对应一个收集器机器,用于收集日志需要解决的问题:如何快速、合理、动态地为每个收集器分配对应的日志源机器1.注册收集器机器:在ZooKeeper上创建一个节点作为收集器的根...原创 2019-07-13 23:14:28 · 137 阅读 · 0 评论 -
Zookeeper典型应用场景及实现一
1 数据发布/订阅Zookeeper采用推拉结合的设计模式:2 负载均衡典型应用为动态DNS服务:1.域名配置:在zookeeper上创建节点来进行域名配置,称为域名节点,如/DDNS/app1/server.app1.company1.com;可以看到,每一个应用可以创建一个属于自己的数据节点作为域名配置的根节点,如/DDNS/app1,在这个节点上,每个应用都可以将自己的域名配置上...原创 2019-07-13 23:10:44 · 455 阅读 · 0 评论 -
《从Paxos到ZooKeeper》第二章总结一:2PC和3PC
第二章:一致性协议最著名:二阶段提交协议2PC;三阶段提交协议;Paxos算法2PC和3PC的核心思想:每一个机器节点无法直接获取其他分布式节点的操作结果,因此需要引入一个被称为”协调者“的组件来统一调度所有分布式节点的执行逻辑;被调度的分布式节点则被称为”参与者“;协调者负责调度参与者的行为,并最终决定这些参与者是否要把事务真正进行提交2.1 2PC(Two-Phase-Comm...原创 2019-06-28 22:21:56 · 199 阅读 · 0 评论 -
《从Paxos到ZooKeeper》第一章总结:分布式架构
1 大型主机存在的问题:1.对技术人员要求高2.价格昂贵3.容易单点故障2 集中式与分布式特点:集中式:一台或多台计算机组成中心节点,部署所有业务,集中处理功能分布式:硬件或软件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调;在没有业务逻辑的约束下,具有分布性、对等性、并发性、缺乏全局时钟、故障总是会发生的特征3 分布式环境的问题:1.通信异常:单机延时通常为1...原创 2019-06-27 21:30:48 · 105 阅读 · 0 评论 -
《从Paxos到ZooKeeper》第二章总结二:Paxos算法
继《从Paxos到ZooKeeper》第二章总结一:2PC和3PC2.3 Paxos基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一其需要解决的问题就是如何在一个可能发生机器宕机或网络异常的分布式系统中,快速且正确地在集群内部对某个数据的值达成一致,并且保证不论发生以上任何异常,都不会破坏整个系统的一致性2.3.1 源头计算机容错理论:拜占庭将...原创 2019-07-01 22:48:23 · 236 阅读 · 0 评论 -
ZooKeeper实战之监听服务器节点动态上线和下线
需求某个分布式系统中,主节点服务器可以有多台,可以动态上下线,任意一台客户端机器都能实时感知到主节点服务器的上下线当qps上来时,上线机器,下去时,下线机器,实现服务器的高效利用分析可以通过判断在zookeeper中是否存在相应的文件来判断服务器是否下线实现1.在zookeeper句群上创建/servers节点create /servers "servers"2.服务器端...原创 2019-05-18 19:02:08 · 1738 阅读 · 0 评论