Zookeeper概述

1)概念:

     ZooKeeper是一种集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务。所有这些类型的服务都以分布式应用程序的某种形式使用。每次实施它们都需要做很多工作来修复不可避免的错误和竞争条件。由于难以实现这些类型的服务,应用程序最初通常会吝啬它们,这使得它们在变化的情况下变得脆弱并且难以管理。即使正确完成,这些服务的不同实现也会在部署应用程序时导致管理复杂性

2)zookeeper功能:

1. 存储数据

2.监听

3)zookeeper工作机制

      基于观察者模式

存储数据:存储集群中每台机器度关心的数据

a.启动服务器向Zk中注册信息

b.获取服务器列表并且注册监听

c.如果其中一个服务器挂掉了,zk立即发送一个下线通知

d.重新获取注册服务器列表,并再次监听

4)存储结构

目录树结构

5)应用场景

a.统一配置管理

b.统一命名服务

c 统一管理

d 服务器的动态上下线通知

e 负载均衡

6)选举机制

服务器1启动  zkServer.sh start 

首先给自己一票  得票数为1

服务器2启动zkServer.sh start 服务器1 给投票为1 +自己给自己投的票为1  得票数为2

服务器3启动zkServer.sh start 发现前面有leader了,自己甘愿做小弟为follower

 

客户端的命令行操作

help
ZooKeeper -server host:port cmd args
        stat path [watch]
        set path data [version]
        ls path [watch]
        delquota [-n|-b] path
        ls2 path [watch]
        setAcl path acl
        setquota -n|-b val path
        history 
        redo cmdno
        printwatches on|off
        delete path [version]
        sync path
        listquota path
        rmr path
        get path [watch]
        create [-s] [-e] path data acl
        addauth scheme auth
        quit 
        getAcl path
        close 
        connect host:port
[zk: localhost:2181(CONNECTED) 1] history
0 - help
1 - history

2)查看帮助

help

3)查看当前zNode所包含内容

ls /

4)创建节点

create /alextest 18

5)查看节点

get /alextest
18
cZxid = 0x4200000002
ctime = Tue Dec 18 21:26:25 CST 2018
mZxid = 0x4200000002
mtime = Tue Dec 18 21:26:25 CST 2018
pZxid = 0x4200000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0

6)创建短暂节点

create -e /alibaba work

7)创建带序号节点

create -s /baidu work

8)创建短暂、带序号的节点

create -e -s /tenent work

9)查看此节点的详细信息

ls2 /

10)获得节点值监听

get   /alibaba watch

11) 监听路径

ls / watch 

12)修改zNode 数据

set /alibaba iii

13)删除节点

delete 节点名称,只是删除单个节点

14)递归删除

rmr /节点下的/节点

15)查看节点状态信息

stat /

cZxid = 0x200000002   每次修改会增加一个时间戳
ctime = Sun Jan 28 08:37:21 CST 2018  节点创建的毫秒数
mZxid = 0x200000002  节点最后更新的时间戳
mtime = Sun Jan 28 08:37:21 CST 2018  更新的毫秒数
pZxid = 0x2500000055 节点更新的子节点
cversion = 42  子节点的变化号,修改次数
dataVersion = 0 数据变化号
aclVersion = 0 控制列表的变化号
ephemeralOwner = 0x0 临时节点拥有者的id
dataLength = 0
numChildren = 16

客户端API

create 

getChildren

getData

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值