大数据技术应用4-5Zookeeper简介、数据模型Watch和选举机制

Apache Zookeeper旨在减轻构建健壮的分布式系统服务。Zookeeper是基于分布式计算核心概念设计主要目的是给开发人员提供一套容易理解和开发的接口从而简化分布式系统构建的服务。

Zookeeper的简介

Zookeeper是一个分布式协调服务开源框架,它是GoogleChubby开源实现。Zookeeper主要用来解决分布式集群中应用系统的一致性问题和单点故障问题例如如何避免同时操作同一数据造成脏读的一致性问题等。

Zookeeper本质上是一个分布式的小文件存储系统,提供基于类似文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理。从而用来维护和监控存储的数据的状态变化。通过监控这些数据状态的变化,从而达到基于数据的集群管理。如统一命名服务、分布式配置管理、分布式消息队列、分布式锁

Zookeeper的特性

Zookeeper具有全局数据一致性可靠性顺序性原子性以及实时性,可以说Zookeeper的其他特性都是为满足Zookeeper全局数据一致性这一特性

大数据技术应用4-5Zookeeper简介、数据模型Watch和选举机制_第1张图片

 Zookeeper集群角色

Zookeeper对外提供一个类似于文件系统的层次化数据存储服务,为了保证整个Zookeeper集群的容错性和高性能,每一个Zookeeper集群都是由多台服务器节点(Server组成,这些节点通过复制保证各个服务器节点之间的数据一致。只要这些服务器节点过半数可用,那么整个集群就可用。

Zookeeper集群是一个主从集群它一般是由一个Leader(领导者)和多个Follower(跟随者)组成。此外,针对访问量比较大的Zookeeper集群还可新增Observer(观察者)Zookeeper集群中的三种角色各司其职,共同完成分布式协调服务。

大数据技术应用4-5Zookeeper简介、数据模型Watch和选举机制_第2张图片

 大数据技术应用4-5Zookeeper简介、数据模型Watch和选举机制_第3张图片

 数据存储结构

Zookeeper是由节点组成的,树中的每个节点被称为Znode。每个节点都可以拥有子节点。每一个Znode默认能够存储1MB数据,每个Znode都可以通过其路径唯一标识,如图中第三层的第一个Znode,,它的路径是/app1/p_1Zookeeper数据模型中每个Znode都是由部分组成,分别是statdatachildren 

大数据技术应用4-5Zookeeper简介、数据模型Watch和选举机制_第4张图片

 Zonde的类型

Znode的类型在创建时被指定,一旦创建无法改变

Znode两种类型,分别是临时节点永久节点

大数据技术应用4-5Zookeeper简介、数据模型Watch和选举机制_第5张图片

 

      目录节点有4种类型:

PERSISTENT
EPHEMERAL
PERSISTENT_SEQUENTIAL
EPHEMERAL_SEQUENTIAL
Zookeeper 中的每个 Znode 都包含了一系列的 属性 ,具体属性如下所示。
大数据技术应用4-5Zookeeper简介、数据模型Watch和选举机制_第6张图片

 大数据技术应用4-5Zookeeper简介、数据模型Watch和选举机制_第7张图片大数据技术应用4-5Zookeeper简介、数据模型Watch和选举机制_第8张图片

 Watch机制的简介

ZooKeeper中,引入了Watch机制来实现这种分布式通知功能ZooKeeper允许客户端向服务端注册一个Watch监听,当服务端的一些事件触发了这个Watch,那么就会向指定客户端发送一个事件通知,来实现分布式的通知功能。

Watch机制的特点

大数据技术应用4-5Zookeeper简介、数据模型Watch和选举机制_第9张图片

 

Watch机制的通知状态和事件类型

 

同一事件类型在不同的连接状态中代表的含义有所不同

常见的连接状态事件类型如下所示。

大数据技术应用4-5Zookeeper简介、数据模型Watch和选举机制_第10张图片

选举机制的简介

 Zookeeper为了保证各节点的协同工作,在工作时需要一个Leader角色,而Zookeeper默认采用FastLeaderElection算法,且投票数大于半数则胜出的机制。

Zook大数据技术应用4-5Zookeeper简介、数据模型Watch和选举机制_第11张图片eeper的数据存储结构和标准文件系统非常类似,拥有一个层次命名空间,用斜杠进行分割,都

 选举机制的类型

Zookeeper选举机制有种类型,分别为全新集群选举非全新集群选举。全新集群选举是新搭建起来的,没有数据ID逻辑时钟的数据影响集群的选举;非全新集群选举时是优中选优,保证LeaderZookeeper集群中数据最完整最可靠的一台服务器。

1. 全新集群选举

1. 全新集群选举

采用树形层次结构,那Zookeeper是由什么组成树呢? Zookeeper的数据存储结构和标准文件系统非常类似,拥有一个层次命名空间,用斜杠进行分割,都采用树形层次结构,那Zookeeper是由什么组成树呢?

你可能感兴趣的:(大数据,java-zookeeper,zookeeper)