Zookeeper入门之一-概念

数据库中事务的ACID

A:Atomicity,原子性,全部成功或全部不成功

C:Consistency,一致性,事务的执行不能破坏数据库中数据的完整性和一致性

I:Isolation,隔离性,并发环境中,并发的事务相关隔离

D: Durability,持久性,提交之后,db中数据是持久化的

分布式事务-CAP

C: Consistency,一致性,数据在多个副本间能否保持一致

A:Availability,可用性,系统一致处于可用状态

P: Partition tolerance,分区容错性,这里的分区指网络分区。也就是遇到任何网络分区故障的时候,对外仍然可以提供满足一致性和可用性的服务

无法同时满足CAP三个特性

BASE理论

B: Basically Available 基本可用

S: Soft state,柔性事务

E: Eventually Consistent,最终一致

Paxos算法

分布式系统容错一致性算法

ZK

zk基于zab协议,是基于paxos的一个简化变种算法。有以下特性:

ZK特性

顺序一致性:

同一个客户端发起的请求,最终会严格按照其发起顺序应用到zookeeper中去。

原子性

所有事务请求的处理结果,在整个集群的机器上生效的情况是一致的。

单一视图

无论client连接的是哪个zk服务器,看到的数据都是一致的。

可靠性

一旦服务端成功的应用了某个事务,并完成了对客户端的响应,那么该事务所引起的服务端状态变更会被一直保留下来,除非有另一个事务对其又进行了变更。

实时性

zk保证在一定时间段内,client最终一定可以从服务端取到最新的数据状态。

ZK基本概念

zk底层是树形结构,由一系列ZNode节点组成。zk将全量数据存储在内存中,提高服务器吞吐、减少延迟。

zk中的角色:

Leader:集群中的所有机器通过选举过程选出一台leader机器

Follower:提供读服务,参与选举

Observer:提供读服务,不参与选举,也不参与写操作的“过半写成功”策略,因此observer在不影响写性能的情况下能提高集群的读性能。

Znode:树上的每个节点保存自己的数据内容,以及一系列属性信息。

​ znode分为临时节点和持久节点,持久节点如果不删除,会一直存在,临时节点绑定客户端session周期,session会话失效节点就会被自动删除。

​ 临时节点不能作为父节点,只能是叶子节点

版本:zk中有三个版本,version—当前znode的版本,cversion--当前znode子节点的版本,aversion—当前znode的acl版本(Access Controll Lists)

Watcher:回调机制的实现

ACL:权限控制,有以下5种权限:

​ CREATE: 创建子节点权限

​ READ:获取节点和子节点列表权限

​ WRITE:更新节点数据权限

​ DELETE:删除子节点权限

​ ADMIN:设置节点的ACL的权限

你可能感兴趣的:(Zookeeper入门之一-概念)