zookeeper节点类型、命令详解、配置文件说明

绝对重要!

       zkServer.sh stat

       zkServer.sh status

zkCli.sh -server ip:port

create path data

rmr path

ls

get

数据结构

节点类型

n  持久非顺序节点

create /node/subnode data

 

n  持久顺序节点

create -s /node/sencodnode data

 

自动生成主键使用

n  临时顺序节点

create  -e -s /tempnode2 data

 

n  临时非顺序节点

create  -e /tempnode data

临时节点:创建节点的连接关闭后,节点自动被删除 就是临时节点。

 

 

持久  / 临时

顺序 / 非顺序

 

顺序节点:节点序号自增,可以创建子节点

临时节点:随着创建节点的事务关闭而自动删除。 不能创建子节点。

 

 

节点信息

  C:ceate

查看一个文件的状态信息

[zk: localhost:2181(CONNECTED) 1] stat /a
cZxid = 0x200000009
ctime = Thu Mar 22 13:07:19 CST 2018
mZxid = 0x200000009
mtime = Thu Mar 22 13:07:19 CST 2018
pZxid = 0x200000009
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0

信息说明

状态属性

说明

cZxid

数据节点创建时的事务ID

ctime

数据节点创建时的时间

mZxid

数据节点最后一次更新时的事务ID

mtime

数据节点最后一次更新时的时间

pZxid

数据节点的子节点列表最后一次被修改

(是子节点列表变更,而不是子节点内容变更)时的事务ID

cversion

子节点的版本号,当添加/删除子节点的时候发生改变

dataVersion

数据节点的版本号 仅仅当data属性发生改变的时候而改变

aclVersion

数据节点的ACL版本号

ephemeralOwner

如果节点是临时节点,则表示创建该节点的会话的

SessionID;

如果节点是持久节点,则该属性值为0

dataLength

数据内容的长度

numChildren

数据节点当前的子节点个数

重要命令详解

管理命令

n zkServer.cmd

n zkServer.sh

n  参数

n  start

n  start-foreground

n  stop

n  restart

n  status

n  upgrade

n  print-cmd

n zkCli.sh

 

n zkCli.cmd

客户端命令

  •  
  • help
  • 节点管理
    •  
    • rmr path
  • get path [watch] 

监视某一个节点,通常情况 监视被删除或者修改。

  • stat path [watch]

stat 和 get 区别  前者不显示数据 后者显示数据

  • create [-s] [-e] path data acl
  • set path data [version]

修改某个path 下的对应的版本号的数据。Path+版本号做唯一约束进行修改

  • delete path [version]

常常用于处理分布式乐观锁

  • ls path [watch]
  • ls2 path [watch]    

这个命令 等于  ls + stat

  • 配额管理  
    • setquota -n|-b val path
    • delquota [-n|-b] path
    • listquota path

超出配额的时候仅仅给出警告,但是并不抛出异常或者是导致操作失败.

  • 命令管理
    • history  

列出历史执行命令

  • redo cmdno

重复执行历史命令

redo  10

  • printwatches on|off
  • sync path

以下几个是权限管理

  • setAcl path acl
  • addauth scheme auth
  • getAcl path

获取权限.

  • 连接管理
    • quit

如果有连接 则关闭连接;退出终端。

  • close

关闭当前连接 但是不退出客户端

  • connect host:port

连接某一个zk 的服务器

配置文件说明

1、tickTime=2000

   以毫秒为单位的心跳。是zk维持分布式服务的一个基本的时间单位。

# The number of milliseconds of each tick

    

2、initLimit=10

   时间表示的是 tickTime*10 ,得到时间是20秒。

   新加进来的服务初始化的时候能够容忍的时间。

    

 

3、syncLimit=5

   同步的时候 经过5个时间单位 同步认为失败。

   

    

4、clientPort  表示对外服务提供的端口。 默认数值2181.

    当前的zkServer 绑定哪个端口.

   

5、dataDir   存储的数据  节点的数据、日志

   节点数据存放的位置.进程id 当前的服务节点编号.

   

6、

只有配置集群的时候这个才有意义.

server.X=A:B:C

   只有在集群的情况下才使用。

    X 表示的服务的编号

    A 表示某个服务器的地址

    B 服务之间需要交互数据,在数据进行交互的时候所使用的端口

       默认数值:2888

    C: 选举leader 使用的端口 默认使用3888

 

 

 

Leader 产生:才有投票的算法,帕克西算法.

通常情况下,zk的集群个数是奇数个. 集群新增节点的时候,不影响leader角色.

如果leader退出集群,则集群会自动选举新的leader

应用场景

分布式框架结构下使用.

应用场景

提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。

统一命名服务

 

 比如项目中经常用到域名,但是ip地址可能会发生改变.使用这个方式避免了因为IP地址发生改变而去重新修改项目的问题.

统一配置管理

 

统一集群管理

 

服务器动态上下线

 

负载均衡

 

    Zookeeper 当中的节点充当每个服务器访问次数的计数器,当有新的请求发送过来的时候,将新的请求派发给服务次数最少的那个上边.

原文地址:https://www.cnblogs.com/liujinqq7/p/12819480.html