![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
zookeeper
大神,快来碗里
专注于Java相关技术
展开
-
Zookeeper(11) Zookeeper数据与存储
一、前言前面分析了Zookeeper对请求的处理,本篇博文接着分析Zookeeper中如何对底层数据进行存储,数据存储被分为内存数据存储于磁盘数据存储。二、数据与存储2.1 内存数据Zookeeper的数据模型是树结构,在内存数据库中,存储了整棵树的内容,包括所有的节点路径、节点数据、ACL信息,Zookeeper会定时将这个数据存储到磁盘上。1. DataTreeDataTree是内...原创 2019-05-04 21:18:29 · 10752 阅读 · 0 评论 -
Zookeeper(10) Zookeeper请求处理
一、前言在前面学习了Zookeeper中服务器的三种角色及其之间的通信,接着学习对于客户端的一次请求,Zookeeper是如何进行处理的。二、请求处理2.1 会话创建请求Zookeeper服务端对于会话创建的处理,大体可以分为请求接收、会话创建、预处理、事务处理、事务应用和会话响应六大环节,其大体流程如 1. 请求接收(1) I/O层接收来自客户端的请求。NIOServerCnxn...原创 2019-05-04 21:17:56 · 10442 阅读 · 0 评论 -
Zookeeper(9) Zookeeper的服务器角色
一、前言前一篇已经详细的讲解了Zookeeper的Leader选举过程,下面接着学习Zookeeper中服务器的各个角色及其细节。二、服务器角色2.1 LeaderLeader服务器是Zookeeper集群工作的核心,其主要工作如下(1) 事务请求的唯一调度和处理者,保证集群事务处理的顺序性。(2) 集群内部各服务器的调度者。1. 请求处理链使用责任链来处理每个客户端的请求时Zoo...原创 2019-05-04 21:17:11 · 28029 阅读 · 0 评论 -
Zookeeper(8) Zookeeper的Leader选举
一、前言前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举。二、Leader选举2.1 Leader选举概述Leader选举是保证分布式数据一致性的关键所在。当Zookeeper集群中的一台服务器出现以下两种情况之一时,需要进入Leader选举。(1) 服务器初始化启动。(2) 服务器运行期间无法和...原创 2019-05-04 21:12:16 · 10335 阅读 · 0 评论 -
Zookeeper(7) Zookeeper的服务端启动
出处:http://www.cnblogs.com/leesf456/一、前言前面已经了解了Zookeeper会话相关知识点,接着来学习Zookeeper服务端相关细节。二、服务端服务端整体架构如下Zookeeper服务器的启动,大致可以分为以下五个步骤1. 配置文件解析。2. 初始化数据管理器。3. 初始化网络I/O管理器。4. 数据恢复。5. 对外服务。2.1 单机...原创 2019-05-04 21:11:38 · 10414 阅读 · 0 评论 -
Zookeeper(6) Zookeeper的会话
出处:http://www.cnblogs.com/leesf456/一、前言前面分析了Zookeeper客户端的细节,接着继续学习Zookeeper中的一个非常重要的概念:会话。二、会话客户端与服务端之间任何交互操作都与会话息息相关,如临时节点的生命周期、客户端请求的顺序执行、Watcher通知机制等。Zookeeper的连接与会话就是客户端通过实例化Zookeeper对象来实现客户...原创 2019-05-04 21:11:06 · 10298 阅读 · 0 评论 -
Zookeeper(5) Zookeeper的客户端
出处:http://www.cnblogs.com/leesf456/一、前言前篇博客分析了Zookeeper的序列化和通信协议,接着继续学习客户端,客户端是开发人员使用Zookeeper最主要的途径,很有必要弄懂客户端是如何与服务端通信的。二、客户端2.1 客户端组成Zookeeper客户端主要由如下核心部件构成。1. Zookeeper实例,客户端入口。2. ClientWa...原创 2019-05-04 21:10:34 · 10339 阅读 · 0 评论 -
Zookeeper(4) Zookeeper的序列化及通信协议
出处:http://www.cnblogs.com/leesf456/一、前言前面介绍了Zookeeper的系统模型,下面进一步学习Zookeeper的底层序列化机制,Zookeeper的客户端与服务端之间会进行一系列的网络通信来实现数据传输,Zookeeper使用Jute组件来完成数据的序列化和反序列化操作。二、JuteJute是Zookeeper底层序列化组件,其用于Zookeep...原创 2019-05-04 21:10:02 · 10795 阅读 · 0 评论 -
Zookeeper(3) Zookeeper的系统模型
一、前言前面已经讲解了Zookeeper的一些应用场景,但是并没有深入到Zookeeper内部进行分析,本篇将讲解其系统模型。二、系统模型2.1 数据模型Zookeeper的数据节点称为ZNode,ZNode是Zookeeper中数据的最小单元,每个ZNode都可以保存数据,同时还可以挂载子节点,因此构成了一个层次化的命名空间,称为树。在Zookeeper中,事务是指能够改变Zooke...原创 2019-05-04 21:09:24 · 10338 阅读 · 0 评论 -
Zookeeper(2) 在大型分布式系统中的应用
出处:http://www.cnblogs.com/leesf456/一、前言上一篇博文讲解了Zookeeper的典型应用场景,在大数据时代,各种分布式系统层出不穷,其中,有很多系统都直接或间接使用了Zookeeper,用来解决诸如配置管理、分布式通知/协调、集群管理和Master选举等一系列分布式问题。二、 HadoopHadoop的核心是HDFS(Hadoop Distributed ...原创 2019-05-04 21:07:41 · 10762 阅读 · 0 评论 -
Zookeeper(1) Zookeeper的应用场景
出处:http://www.cnblogs.com/leesf456/一、前言本篇讲解Zookeeper的应用场景。二、典型应用场景Zookeeper是一个高可用的分布式数据管理和协调框架,并且能够很好的保证分布式环境中数据的一致性。在越来越多的分布式系统(Hadoop、HBase、Kafka)中,Zookeeper都作为核心组件使用。2.1 数据发布/订阅数据发布/订阅系统,即配...原创 2019-05-04 21:06:28 · 10502 阅读 · 1 评论 -
Zookeeper基本命令
1 运行服务进入bin目录,使用zkServer.sh start启动服务使用jps命令查看,存在QuorumPeerMain进程,表示Zookeeper已经启动2 停止服务在bin目录下,使用zkServer.sh stop停止服务使用jps命令查看,QuorumPeerMain进程已不存在,表示Zookeeper已经关闭3 打开客户端在服务端开启的情况下,运行客户端,使用如下命令...原创 2018-12-29 13:22:38 · 14066 阅读 · 0 评论 -
Zookeeper(12) Zookeeper与Paxos
出处:http://www.cnblogs.com/leesf456/一、前言在学习了Paxos在Chubby中的应用后,接下来学习Paxos在开源软件Zookeeper中的应用。二、ZookeeperZookeeper是一个开源的分布式协调服务,其设计目标是将那些复杂的且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一些列简单的接口提供给用户使用。其是一个典型的分...原创 2019-05-04 21:19:13 · 10559 阅读 · 0 评论