zookeeper 基础(1)

 官网: https://zookeeper.apache.org/

 简介:apache zookeeper 是用于分布式的高性能的协调服务,提供一种集中式的信息存储服务。

特点:数据存在内存中类似文件系统的树形结构(文件和目录),高吞吐量和低延迟,集群高可靠。

作用:基于zookeeper可以实现分布式统一配置中心、服务注册中心,分布式锁等功能的实现。

 

 安装Zookeeper

Ø安装1.6版本以上JDK,配置环境变量

Ø下载https://archive.apache.org/dist/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz

Ø压后的conf目录,增加配置文件zoo.cfg

Ø 启动服务端 bin/zkServer.sh start

Ø 测试,客户端连接: bin/zkCli.sh -server 127.0.0.1:2181

ZooKeeper特点-简单

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

 

 数据模型

层次名称空间

   类似unix文件系统,以/为根

   区别:节点可以包含与之关联的数据以及子节点名称(即是文件又是文件夹)

    节点的路径总是规范,绝对的,斜杠分隔的路径

znode

    名称唯一,命名规范。

    节点类型:持久,有序,临时,临时顺序。

    节点结构构成。

znode命名规范

节点名称除下列限制外,可以使用任何unicode字符:

Ønull字符(\u0000)不能作为路径名的一部分;

Ø 以下字符不能使用,因为它们不能很好地显示,或者以令人困惑的方式呈现:

  \u0001 - \u0019\u007F - \u009F

Ø 不允许使用以下字符:\ud800 - uf8fff\uFFF0 - uFFFF

Ø.”字符可以用作另一个名称的一部分,但是“.”和“..”不能单独用于指示路径上的节点,因为ZooKeeper不使用相对路径。下列内      容无效:“/a/b/. / c”或“c / a / b / . . /”

Øzookeeper”是保留节点名。

 ZooKeeper特点-简单

操作指令:[zk: localhost:2181(CONNECTED) 1] help

ZooKeeper特点-有序

多种方式跟踪时间

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或时钟时间。

ZooKeeper特点-有序

节点上的元数据信息-Stat

除了ephemeralOwnerdataLengthnumChildren,其他属性都体现了顺序

ZooKeeper特点-可复制

  快速搭建集群

                        集群特点,保证了服务的可靠性,也解决了单点故障。

ZooKeeper特点-快速

zk快在哪?

zookeeper数据加载在内存中,高吞吐,低延迟。

以读取为主的工作负载,非常快。

操作的znode大小限制1M

 性能方面可用于大型的分布式系统。 

猜你喜欢

转载自blog.csdn.net/sdmxdzb/article/details/90179846
今日推荐