ZooKeeper基本概念
Posted Decade晚安
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZooKeeper基本概念相关的知识,希望对你有一定的参考价值。
目录
一、定义
Zookeeper是一个分布式协调服务,目的是将复杂且容易出错的分布式一致性服务封装起来,提供一些简单的接口给用户使用。同时它也是分布式数据一致性的解决方案。
二、基本概念
1.集群角色
在Zookeeper中,它引用了Leader Follower Observer三种角色。在Zookeeper集群中的所有机器会推举一个机器作为Leader。Leader服务器为客户端提供读、写服务。而Follower和Observer只提供读服务,他俩之间唯一不同的区别就是Observer不参与选举投票(选举Leader、写操作过半写成功策略)。
在Zookeeper写操作时:
2.会话
客户端启动会与服务器建立一个TCP连接,在连接建立开始时,会话的生命周期也就开始了。通过这个连接客户端会通过心跳检测与服务器保持有效的会话。能向Zookeeper发送请求并接受响应,还能接收服务器的事件通知。
3.数据节点
在Zookeeper中节点分为两类:一类是构成集群的机器,为机器节点。另一类是数据模型中的数据单元,将其称之为数据节点。Zookeeper是将所有数据存储在内存中,数据模型是树,由(/)进行分割路径------就是一个ZNode。例如:/app1/p1.
4.版本
Zookeeper上的每个ZNode都会存储数据,对于每一个ZNode,Zookeeper都会对其维护一个Stat的数据结构,Stat中记录了这个ZNode的三个数据版本,Version(当前的ZNode版本)、cversion(当前ZNode的子节点的版本)、aversion(当前ZNode的ACL版本)。
5.事件监听器
Zookeeper提供了数据的发布/订阅功能,多个订阅者可同时监听某一特定主题对象,当该主题对象的自身状态发生变化时(例如节点内容改变、节点下的子节点列表改变等),会实时、主动通知所有订阅者。
6.ACL
Zookeeper是通过ACL策略来进行权限控制的。
CREATE c 可以创建子节点
DELETE d 可以删除子节点(仅下一级节点)
READ r 可以读取节点数据及显示子节点列表
WRITE w 可以设置节点数据
ADMIN a 可以设置节点访问控制列表权限
以上是关于ZooKeeper基本概念的主要内容,如果未能解决你的问题,请参考以下文章