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

Zookeeper入门

Zookeeper入门

Zookeeper

一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能

相关 CAP 理论

CAP 理论指:

一致性(Consistency),数据在多个副本之间是否能够保持一致的特性,等同于所有节点访问同一份最新的数据副本可用性(Availability),每次请求都能获取到正确的响应,但是不保证获取的数据为最新数据。分区容错性(Partition tolerance),分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务

对一个分布式计算系统来说,不可能同时满足以上三点,最多只能同时满足这三项中的两项。

- zookeeper 保证的是 CP

- 注册中心 eruka 实现的是 AP

Zookeeper入门关注点

Zookeeper的数据模型基础命令权限控制watcher监听机制

Zookleeper 主要的概念: 文件系统数据结构 + 监听通知机制

数据模型

在 zookeeper 中,所有存储的数据是由 znode 组成的,节点也称为 znode,并以 key/value 形式存储数据。
整体结构类似于 linux 文件系统的模式以树形结构存储。其中根路径以 / 开头,可以自由的新增、删除znode,也可以在znode下新增、删除子znode。

节点属性:

属性名属性
cZxid创建节点时的事务ID
ctime创建节点时的时间
mZxid最后修改节点时的事务ID
mtime最后修改节点时的时间
pZxid表示该节点的子节点列表最后一次修改的事务ID,添加子节点或删除子节点就会影响子节点列表,但是修改子节点的数据内容则不影响该ID(注意,只有子节点列表变更了才会变更pzxid,子节点内容变更不会影响pzxid)
cversion子节点版本号,子节点每次修改版本号加1
dataversion数据版本号,数据每次修改该版本号加1
aclversion权限版本号,权限每次修改该版本号加1
ephemeralOwner创建该临时节点的会话的sessionID。(**如果该节点是持久节点,那么这个属性值为0)
dataLength该节点的数据长度
numChildren该节点拥有子节点的数量(只统计直接子节点的数量)

zookeeper节点的类型

1.持久化节点
  客户端与zookeeper断开连接后,该节点依旧存在,只要不手动删除该节点,将会永远。(服务器报废另说)

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

3.临时节点
  客户端与zookeeper断开连接后,该节点被删除

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

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

6.TTL节点
  默认禁用,只能通过系统配置 zookeeper.extendedTypesEnabled=true 开启,不稳定,过了TTL指定的时间时,被服务器删除。

监听通知机制

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

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

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

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

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

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