2、Zookeeper的特点

Zookeeper的特点

一. 简单

(一). 数据结构简单
类似Unix文件系统树形结构,每个目录称为Znode节点,但是又不同于文件系统,既可以做目录拥有子节点,又可以做文件存放数据。
1572764101280

  1. 同节点下的子节点名称不能相同
  2. 命名有规范
  3. 绝对路径
  4. 存放的数据大小有限制

(二). 数据模型
层次名称空间

  • 类似unix文件系统,以 / 为根
  • 区别:节点可以包含与之关联的数据以及子节点 (既是文件也是文件夹)
  • 节点的路径总是表示为规范的、绝对的、斜杠分隔的路径。

znode

  • 名称唯一,命名规范
  • 节点类型:持久、顺序、临时、临时顺序
  • 节点数据构成

(三). 命名规范
节点名称除下列限制外,可以使用任何unicode字符:

  • null字符(\u0000)不能作为路径名的一部分;
  • 以下字符不能使用,因为它们不能很好地显示,或者以令人困惑的方式呈现:
    \u0001 - \u0019和\u007F - \u009F。
  • 不允许使用以下字符:\ud800 - uf8fff, \uFFF0 - uFFFF。
  • “.”字符可以用作另一个名称的一部分,但是“.”和“…”不能单独用于指示路径上的节点,因为ZooKeeper不使用相对路径。下列内容无效:
  • “/a/b/. / c”或“c / a / b / . . /”。
  • “zookeeper”是保留节点名。

(四). 操作命令

增删改查指令

指令描述使用范围
ls获取子节点命令行和API
create在zookeeper中的某个位置创建一个节点命令行和API
delete删除节点命令行和API
exists测试节点是否存在API
get data从指定节点读取数据命令行和API
set data将数据存入指定节点命令行和API
get children查询指定节点之下所有的子节点API
sync等待数据进行同步命令行和API
stat输出关于性能和连接客户端的列表命令行和API
  1. ls 获取子节点

  2. 在zookeeper中的某个位置创建一个节点

  3. get data 从指定节点读取数据

  4. set data 将数据存入指定节点

  5. delete 删除节点

  6. stat 输出相关信息

二. 有序

  • 多种方式跟踪时间

Zxid
ZooKeeper中的每次更改操作都对应一个唯一的事务id,称为Zxid,它是一个全局有序的戳记,
如果zxid1小于zxid2,则zxid1发生在zxid2之前。

Version numbers
版本号,对节点的每次更改都会导致该节点的版本号之一增加。这三个版本号是dataVersion
(对znode数据的更改次数)、cversion(对znode子节点的更改次数)和aclVersion(对znode ACL的更改次数)。

Ticks
当使用多服务器ZooKeeper时,服务器使用“滴答”来定义事件的时间,如状态上传、会话超时、
对等点之间的连接超时等。滴答时间仅通过最小会话超时(滴答时间的2倍)间接公开;如果客户端请求的会话超时
小于最小会话超时,服务器将告诉客户端会话超时实际上是最小会话超时。

Real time
ZooKeeper除了在znode创建和修改时将时间戳放入stat结构之外,根本不使用Real time或时钟时间。

  • 节点上的元数据信息-Stat

1572773730390

属性描述
cZxid创建该节点的zxid
ctime该节点的创建时间
mZxid该节点的最后修改zxid
mtime该节点的最后修改时间
pZxid该节点的最后子节点修改zxid
cversion该节点的子节点变更次数
dataVersion该节点数据被修改的次数
aclVersion该节点的ACL变更次数
ephemeralOwner临时节点所有者会话ID,非临时节点为0
dataLength该节点数据长度
numChildren子节点数

除了ephemeralOwner、dataLength、numChildren,其他属性都体现了顺序

三. 可复制

可以快速的搭建集群
1572773756694 集群特点,保证了服务的可靠性,可靠性使其不会成为单点故障

四. 快速

ZK快在哪里?
  • ZooKeeper数据加载在内存中,这意味着ZooKeeper可以获得高吞吐量和低延迟数。
  • 以读取为主的工作负载中,它尤其快。
  • 操作的Znode的数据大小限制1M

四. 快速

ZK快在哪里?
  • ZooKeeper数据加载在内存中,这意味着ZooKeeper可以获得高吞吐量和低延迟数。
  • 以读取为主的工作负载中,它尤其快。
  • 操作的Znode的数据大小限制1M

ZooKeeper的性能方面意味着它可以用于大型分布式系统

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值