ZooKeeper入门一

一、简介
1、apache Zookeeper是一个用于分布式的应用程序的高性能协调服务。提供一
种集中式的数据存储服务。
2、数据存在内存中,类似于文件系统的树形结构,高吞吐量和低延迟,集群高可
靠。
3、基于Zookeeper可以实现分布式统一配置中心、服务注册中心、分布式锁等功
能。
在这里插入图片描述
(数据结构)

二、安装ZooKeeper
1、jdk必须要1.5以上,配置环境变量
2、安装地址在这里插入图片描述
3、下载之后,修改zookeeper-3.4.13\conf\zoo_sample.cfg 的文件名称,改为
zoo_cfg.
4、启动服务端、客户端
如果是在window系统:
①、启动服务端:双击bin目录下的zkServer.cmd
②、启动客户端:双击bin目录下的 zkCli.cmd
如果是linux系统:
①、启动服务端:bin/zkServer.sh start
②、启动客户端:bin/zkCli.sh -server 127.0.0.1:2181

三、ZooKeeper的特点
1、简单
①、数据结构简单:类似树形结构,每个目录被称为Znode节点,既可以充当字节点,又可以存放数据
②、操作指令简单:在这里插入图片描述
2、有序
①、多种方式跟踪时间
a、Zxid:ZooKeeper中每次更改操作都对应一个唯一的事务id,称为Zxid,如何zxid1比zxid2小,则表明zxid1在zxid2之前执行
b、version number:版本号,对节点的每次更改都会导致该节点的版本号之 一增加。dataVersion(Znode的数据更改次数)、cversion(对子节点的更改次数)、aclVersion(对Znode的acl操作次数)
c、Ticks:当使用多服务器Zookeeper时,服务器使用“滴答”来定义时间,如会话超时、点对点连接超时等,
d、realtime:只在新增、修改Znode时存放真实时间
3、可复制:可以快速搭建集群
在这里插入图片描述
4、快速
①、Zookeeper数据加载在内存里面,可以获取高吞吐量和低延迟数
②、以读取为主的工作负载,尤快
③、Znode的数据大小限制在1M。

四、Zookeeper会话机制
1、一个客户端连接一个会话,有zk分配唯一的会话id
2、客户端以特定时间间隔(TickTime)发送心跳以保持会话有效
3、超过会话时间未收到客户端的心跳,则判断客户端死了。(默认2被tickTime)
4、会话请求时fifo顺序执行

五、节点类型
1、持久节点: create /zk/app1 111
2、临时节点: create -e /zk/app2 222,关闭之后,节点消失
3、顺序节点: create -s /zk/app1 111
4、临时顺序节点:create -e -s /zk/app1/ 333
六、watch监听机制
1、客户端可以在Znode上设置watch,监听Znode的编号
2、watch类型:
①、datawatch:监听 数据变更
②、childwatch:监听 子节点变化
3、watch事件触发:
①、Created Event:exists
②、Deleted Event:exists getData getChildren
③、Changed Event: exists getData
④、Child Event :getChildren
注:getData()、getChildren()、exists(),3个注册方法
4、watch重要性:
①、一次性触发:watch触发后即被删除。要持续监控变化,则需要持续设置watch
②、有序性:客户端先看到watch通知,才会看到变化结果
5、watch注意事项
①、因为watch是一次性触发器,并且在获取事情和发送获取新的watch之前存在延迟,所以不能可靠的得到节点发生的每一个更改
②、一个watch对象只会被特定的通知触发一次。 但是这个watch对象同时注册了exists、getData,当节点被删除时,删除事件对exists、getData都有效

七、ZookKeeper的特性
1、顺序一致性:保证客户端的操作是按顺序来的
2、原子性:更新要么成功、要么失败
3、单个系统映像,无论连接到哪个服务器,看到的数据都是一样的
4、可靠性:数据不会丢失,除非被客户端覆盖
5、及时性:保证系统客户端读到的数据都是最新的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值