Zookeeper基本概念

集群角色

        Zookeeper中引入了Leader、Follower和Observer三种角色。Zookeeper通过leader选举过程选定一台机器做为Leader,Leader为客户端提供读写服务。除Leader外,其他机器为Follower或者Observer,Follower和Observer都可以提供读服务,唯一的区别是,Observer不参与选举过程,也不参与写操作的“过半写成功”策略。Observer可以在不影响写性能的情况下,提升集群的读性能。

会话

        客户端启动时,首先与服务器建立一个TCP连接,从第一次连接建立开始,客户端会话声明周期开始,通过这个连接,客户段能够通过心跳检测与服务器保持有效的会话。sessionTimeout用于设置客户端会话的超时时间,当服务器压力过大或者网络故障等原因导致客户端断开时,只要在sessionTimeout时间内重新连接上集群中任意一台服务器,之前的会话仍然是有效的。

数据节点

        Zookeeper中节点分两类:一类是指构成集群的每一台机器,称为机器节点。另一类是指数据模型中的数据单元,称为数据节点——ZNode。
        ZNode分为持久节点和顺序节点两类。持久节点是指Znode创建后,除非主动进行ZNZooode删除操作,否则ZNode将一直保存在Zookeeper上。而临时节点的声明周期是与客户端会话绑定的,一旦客户端会话失效,客户端创建的临时节点都会被移除。两类节点都有一个属性SEQUENTIAL,当节点标记此属性后,在创建节点时,Zookeeper会自动在其节点名后追加一个由父节点维护的自增数字。
        对于每个ZNode,Zookeeeper会为其维护一个叫stat的数据结构,其中记录了这个ZNode的三个版本,分别是version(当前ZNode的版本)、cversion(当前ZNode的子节点的版本)和aversion(当前ZNode的ACL版本)。

Watcher

        事件监听器,是Zookeeper的一个很重要的特性,Zookeeper允许用户在指定节点上注册一些Watcher,并在一些特定事件触发的时候,Zookeeper服务端会将事件通知到感兴趣的客户端上,此机制是Zookeeper实现分布式协调服务的重要特性。

ACL

        Zookeeper采用ACL(Access Control Lists)策略来进行权限控制,Zookeeper定义了如下5钟权限:
                CREATE:创建子节点的权限。
                READ:获取节点数据和子节点列表的权限。
                WRITE:更新节点数据的权限。
                DELETE:删除子节点的权限。
                ADMIN:设置节点ACL的权限。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值