栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Zookeeper

Zookeeper

概述

Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就 将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。

可以理解为Zookeeper是一个用于存储少量数据的基于内存的数据库,主要有如下两个核心的概念:文件系统数据结构+监听通知机制。

特点

Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。

集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所 以Zookeeper适合安装奇数台服务器。

全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。

更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行。

数据更新原子性,一次数据更新要么成功,要么失败。

实时性,在一定时间范围内,Client能读到最新数据。

文件系统数据结构

Zookeeper维护一个类似文件系统的数据结构: 整体上可以看作是一棵树,每个节点称做一个 ZNode(目录节点),和文件系统类似,我们能够自由的增加、删除 znode,在一个znode下增加、删除子znode,每一个ZNode 默认能够存储 1MB 的数据,每个ZNode 都可以通过其路径唯一标识。

znode的类型:

1、PERSISTENT­持久化目录节点:客户端与zookeeper断开连接后,该节点依旧存在,只要不手动删除该节点,他将永远存在

2、 PERSISTENT_SEQUENTIAL­持久化顺序编号目录节点:客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号

3、EPHEMERAL­临时目录节点:客户端与zookeeper断开连接后,该节点被删除

4、EPHEMERAL_SEQUENTIAL­临时顺序编号目录节点:客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号

5. Container 节点(3.5.3 版本新增,如果Container节点下面没有子节点,则Container节点 在未来会被Zookeeper自动清除,定时任务默认60s 检查一次)

6. TTL 节点( 默认禁用,只能通过系统配置 zookeeper.extendedTypesEnabled=true 开启,不稳 定)

监听通知机制

客户端注册监听它关心的任意节点,或者目录节点及递归子目录节点

1. 如果注册的是对某个节点的监听,则当这个节点被删除,或者被修改时,对应的客户端将被通知

2. 如果注册的是对某个目录的监听,则当这个目录有子节点被创建,或者有子节点被删除,对应的客户端将被通知

3. 如果注册的是对某个目录的递归子节点进行监听,则当这个目录下面的任意子节点有目录结构的变化(有子节点被创建,或被删除)或者根节点有数据变化时,对应的客户端将被通知。

注意:所有的通知都是一次性的,及无论是对节点还是对目录进行的监听,一旦触发,对应的监听即被移除。递归子节点,监听是对所有子节点的,所以,每个子节点下面的事件同样只会被触发一次。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422706.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号