zookeeper概念

zookeeper简单介绍

1.是什么?
用于专门解决分布式系统中,数据不一致问题,保证数据一致性,基于paxos算法进行实现。

2.做什么,有什么功能?
基于分布式,配置文件管理,命名服务,分布式锁,集群管理,发布与订阅

几个使用的重要概念

session会话,znode节点,版本,watcher事件,ACL权限控制

session会话

1.session会话:客户端启动时,会与服务端建立一个长连接TCP,并使用心跳机制来保证这个长连接,通过这个连接,客户端可以向服务端发出请求,同时也能通过这个连接收到服务端的watcher事件。
Session 的 sessionTimeout 值用来设置一个客户端会话的超时时间。在超时时间内连接到服务端任意节点,那么之前创建的会话仍然有效

注:在创建会话之前,都会生成一个全局唯一的sessionID。

znode节点

概念:
1.:在集群环境下,指不同的服务器
2.在单台服务器上,指数据模型,zookeeper的数据模型是一棵树,内部有多个 节点,每个节点都保存有自己的数据消息,如:子节点,节点内容,操作版本
节点分类:
分为永久性节点与临时节点:永久节点一旦节点被创建,除非主动删除,不然不会消失;临时节点当客户端会话断开时,临时节点会消失

同时节点创建时,可以添加SEQUENTIAL属性,在节点被创建时,会自动在节点名称后面加一个整数,这个整数的值由其父节点维护自增长。

版本

每个znode节点都会存储自己的数据,维护一个叫做stat数据结构。

version :当前节点版本
cversion :当前字节点版本
aversion :当前ACL版本

watcher事件

在每个节点,都可以注册事件,当时事件触发时,会通知注册过事件的客户端,客户端做出相应的操作。watcher事件包括data watches和child watches两种。

ACL权限控制

ACL权限主要有:crwda权限
c:创建子节点的权限
r:读取子节点数据的权限
w:修改子节点数据的权限
d:删除子节点的数据权限
a:设置节点的权限

zookeeper的特点

顺序一致性:从同一客户端发起的事务请求,最终将会严格地按照顺序被应用到 ZooKeeper 中去。
原子性:所有事务请求的处理结果在整个集群中所有机器上的应用情况是一致的,也就是说,要么整个集群中所有的机器都成功应用了某一个事务,要么都没有应用。
单一系统映像:无论客户端连到哪一个 ZooKeeper 服务器上,其看到的服务端数据模型都是一致的。
可靠性:一旦一次更改请求被应用,更改的结果就会被持久化,直到被下一次更改覆盖。

zookeeper角色介绍

zookeeper角色:leader,follower ,observer
leader:投票的发起,更新系统状态
follower:参与读操作,向leader转发写操作,参与leader选举的投票
observer:参与读操作,向leader转发写操作,不参与投票,同步系统状态,此角色为了提高系统读性能而产生。

ZAB协议

ZAB(ZooKeeper Atomic Broadcast 原子广播)协议是为分布式协调服务 ZooKeeper 专门设计的一种支持崩溃恢复的原子广播协议。

在 ZooKeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性,基于该协议,ZooKeeper 实现了一种主备模式的系统架构来保持集群中各个副本之间的数据一致性。

ZAB 协议两种基本的模式

ZAB 协议包括两种基本的模式,分别是崩溃恢复和消息广播。

猜你喜欢

转载自blog.csdn.net/a5575vhj/article/details/88592028