Zookeeper小结

ZooKeeper主要是为了统一分布式系统中各个节点的工作状态,在资源冲突的情况下协调提供节点资源抢占,提供给每个节点了解整个集群所处状态的途径。这一切的实现都依赖于ZooKeeper中的事件监听和通知机制。

 

1:ZooKeeper 节点是有生命周期的,这取决于节点的类型。在 ZooKeeper 中,节点类型可以分为持久节点(PERSISTENT )、临时节点(EPHEMERAL),以及时序节点(SEQUENTIAL ),具体在节点创建过程中,一般是组合使用,可以生成以下 4 种节点类型:持久节点,临时节点,持久顺序节点和临时顺序节点。

持久节点(PERSISTENT)
所谓持久节点,是指在节点创建后,就一直存在,直到有删除操作来主动清除这个节点——不会因为创建该节点的客户端会话失效而消失

 

临时节点(EPHEMERAL)

和持久节点不同的是,临时节点的生命周期和客户端会话绑定。也就是说,如果客户端会话失效,那么这个节点就会自动被清除掉。注意,这里提到的是会话失效,而非连接断开。另外,在临时节点下面不能创建子节点。

 

2:使用listener监听,节点cache机制。addConnection后立即getConnection会NullPointerException,因ZK节点在本地的cache缓存需要时间更新,可使用while true加Thread.sleep保证取到connection。

listener监听会通过对ZK节点的CRUD操作来触发cache缓存中的onChildAdd onChildUpdate等方法。

 

3:ZK的主要使用场景:配置管理,集群管理,同步锁,队列管理。

 

4:ZK只适合存储小数据(默认1MB),且操作为原子性,并且只支持绝对路径。对节点进行读操作时,常先使用sync方操作,使得ZK的client端与leader进行同步,从而保证读取到的是最新的数据内容。PS:sync方法是异步调用的,无需等待返回的结果,ZK server端会保证所有的后续操作都是在sync操作完成后才执行,哪怕这些操作是在执行sync之前被提交的。

PS:不管是否调用client.sync方法,ZK的client端都会与leader端同步保证client.getData读取到的都是最新的数据。

 

5:

 

hadoop系列:zookeeper(1)——zookeeper单点和集群安装

hadoop系列:zookeeper(2)——zookeeper核心原理(选举)

hadoop系列:zookeeper(3)——zookeeper核心原理(事件)

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值