Zookeeper

一、概述

1.Zookeeper 是 Apache 提供的一套开源的、分布式的用于进行资源管理和服务协调的框架

2.Zookeeper 是根据 Google 关于 Chubby Lock 的论文来设计实现的

二、分布式下的问题

1.需要设置管理节点:对外接收请求来提供统一对集群中的节点进行操作

2.为了避免管理节点出现单点故障,需要设置管理集群

3.”管理节点“集群中需要选举出一个主节点,确定一套选举算法

4.”管理节点“集群需要能进行崩溃恢复

5.”管理节点“集群中的节点需要实时进行数据的共享

三、安装

1.单机安装:只在一个节点上安装,往往只能提供一部分功能

2.伪分布式:只在一个节点上模拟集群环境

3.完全分布式:在多个节点中进行集群环境的安装

四、特点

1.Zookeeper 本身是一个树状结构 - Znode树

2.根节点是 / 

3.每一个子节点称之为是一个 znode 节点

4.所有的节点路径都必须以根节点作为起始

5.每一个节点都必须存储数据,这个数据一般是配置信息或者是对节点的描述

6.每一个持久节点下都可以挂载子节点

7.Znode 树本身维系在磁盘以及内存中

8.Znode 树维系在内存中的目的:为了快速查询

9.Znode 树维系在磁盘中的目的:崩溃恢复

10.Znode 树在磁盘中的存储位置由 dataDir 属性决定。dataDir 默认是在 /tmp 下

11.Zookeeper 存在事务概念。Zookeeper 会对每一次的写操作(create,delete,rmr,set)

 分配一个全局递增的编号,称之为事务id - Zxid

 

五、命令

ls        查看指定节点的所有子节点      例:ls /   ls /log

create       创建节点               例:create /music ''  create /log 'log services'

delete     删除节点,要求这个节点没有子节点  例:delete /music

rmr       递归删除                  例:rmr /log

get       查看节点信息               例:get /picture

set       修改节点数据             例:set /picture 'ps'

create -e    创建临时节点

create -s    创建持久顺序节点

create -e -s  创建临时顺序节点

 

六、节点信息

cZxid  当前节点的创建事务id

ctime  当前节点的创建时间

mZxid 当前节点的修改事务id

mtime 当前节点数据的修改时间  

pZxid 子节点的增删事务id

cversion 子节点的增删次数

dataVersion 数据版本。当前节点数据的修改次数

aclVersion   当前节点的权限修改次数

ephemeralOwner  标记当前节点是否是一个临时节点

          如果是持久节点,那么此项的值是0

          如果是临时节点,那么此项值为当前的sessionID

dataLength 数据字节个数

numChildren  子节点个数 

例:cZxid,mZxid,pZxid,cversion

 

七、节点类型

        持久节点            临时节点 

非顺序节点   PERSISTENT          EPHEMEARAL

顺序节点    PERSISTENT_SEQUENCIAL   EPHEMEARAL_SEQUENCIAL

 

八、特性

1.过半性 - 选举、存活、操作

2.数据一致性 - 原子广播

3.原子性 - 原子广播

4.顺序性 - 队列

5.实时性 - 可以动态监控节点的变化

6.可靠性 - 没有单点故障,通过崩溃恢复

posted @ 2020-06-15 14:24  alen-fly  阅读(144)  评论(0编辑  收藏  举报