zookeeper基本概念(1)

来源:互联网 发布:cad网络培训 编辑:程序博客网 时间:2024/06/06 17:31

ZK集群角色

Leader,Follower,Observer

Leader服务器是整个zookeeper集群工作机制中的核心

Follower服务器是zookeeper集群状态的跟随者

Observer服务器充当一个观察者的角色

Leader,Follower 设计模式

Observer 观察者设计模式

ZK会话

会话是指客户端和ZK服务器的连接,ZK中的会话叫Session,客户端与服务器建立一个TCP的长连接来维持一个Session,客户端在启动的时候首先会与服务器建立一个TCP连接,通过这个连接,客户端能够通过心跳检测与服务器保持有效的会话,也能想ZK服务器发送请求并获得响应。

ZK节点

1、集群中的一台机器称为一个节点

2、数据模型中的数据单元Znode,分为持久节点与临时节点

ZK版本

version        当前数据节点数据内容的版本号

cversion      当前数据节点子节点的版本号

aversion      当前数据节点ACL变更版本号

悲观锁和乐观锁

    悲观锁又叫悲观并发锁,是数据库中一种非常严格的锁策略,具有强烈的排他性,能够避免不同事务对同一数据并发更新造成数据不一致性,在上一个事务没有完成之前,下一个事务不能访问相同的资源,适合数据更新竞争非常激烈的场景。

    相比悲观锁,乐观锁使用的场景更多,悲观锁认为事务访问相同数据的时候一定会出现相互的干扰,所以简单粗暴的使用排他访问的方式,而乐观锁认为不同事务访问相同资源是很少出现相互干扰的情况,因此在事务处理期间不需要进行并发控制,当然乐观锁也是锁,它还是并发的控制!对于数据库我们通常的做法是在每个表中增加一个version版本字段,事务修改数据之前先读出数据,当然版本号也顺势读取出来,然后把这个读取出来的版本号加入到更新语句的条件中。

ZK watcher(事件监听器)

    ZK允许用户在指定节点上注册一些watcher,当数据节点发生变化时,ZK服务器会把这个变化的通知发送给感兴趣的客户端

ZK ACL权限控制

ACL是Access Control Lists 的简写,ZK采用ACL策略来进行权限控制,有以下权限:

CREATE:创建子节点的权限

READ:获取节点数据和子节点列表的权限

WRITE:更新节点数据的权限

DELETE:删除子节点的数据

ADMIN:设置节点ACL的权限

原创粉丝点击