【zookeeper学习笔记】| 三 、分布式协调服务介绍、zookeeper节点介绍

一、分布式系统的特征

1、分布性:系统中的计算机在空间上随意分布和随时变动

2、对等性:系统中的计算机是对等的,没有主从之分

3、并发性:并发性操作是非常常见的行为

4、缺乏全局时钟:系统中的计算机具有明显的分布性,且缺乏一个全局的时钟序列控制,所以很难比较两个事件的先后

这个自己的理解 一个是网络延时、区域位置

5、故障总是会发生:任何在设计阶段考虑到的异常情况,一定会在系统实际运行中发生,并且还会遇到很多在设计时未考虑到的异常故障

二、认识Zookeeper

1)

2)

1、介绍

1)随着分布式架构的出现,越来越多的分布式应用会面临数据一致性问题。
2)Zookeeper是一个典型的分布式数据一致性解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、master选举、分布式锁和分布式队列等功能。

2、zookeeper应用场景

1)Hadoop、HBase、Storm、Solr等中的核心组件,用于分布式协调。
2) dubbo 注册中心

3、zookeeper分布式一致性的特性

1)顺序一致性:从同一个客户端发起的事务请求,最终将会严格地按照其发起顺序被应用到Zookeeper中去
2)原子性:所有事务请求的处理结果在整个集群中所有的机器上的应用情况是一致的
3)单一视图:无论客户端连接的是哪个Zookeeper服务器,其看到的服务器数据模型都是一致的
4)可靠性:一旦服务端成功地应用了一个事务,并完成对客户端的响应,那么该事务所引起的服务端状态变更将会被一直保留下来,除非有另一个事务又对其进行了变更
5)实时性:在一定的时间内,客户端最终一定能够从服务端上读取到最新的数据状态

三、zookeeper基本概念

1、集群角色

1)Leader:客户端提供读和写服务

2)Follower:提供读服务,所有写服务都需要转交给Leader角色,参与选举

3)Observer:提供读服务,不参与选举过程,一般是为了增强Zookeeper集群的读请求并发能力

2、会话(session)

1)Zk的客户端与zk的服务端之间的连接

2)通过心跳检测保持客户端连接的存活

3)接收来自服务端的watch事件通知

4)可以设置超时时间

四、Node节点

1、ZNode

是Zookeeper中数据的最小单元,每个ZNode上可以保存数据(byte[]类型),同时可以挂在子节点,因此构成了一个层次化的命名空间,我们称之为树

2、节点图数据模型图
3、节点类型(临时|顺序|持久)

1)节点的生命周期由节点类型决定

2)持久节点(PERSISTENT):节点创建后就一直存在于Zookeeper服务器上,直到有删除操作主动将其删除

3)持久顺序节点(PERSISTENT_SEQUENTIAL):基本特性与持久节点一致,额外的特性在于Zookeeper会记录其子节点创建的先后顺序

4)临时节点(EPHEMERAL):声明周期与客户端的会话绑定,客户端会话失效时节点将被自动清除

5)临时顺序节点(EPHEMERAL_SEQUENTIAL):基本特性与临时节点一致,但添加了顺序的特性

4、节点的状态信息、抽象为 Stat 对象,属性
czxid:节点被创建时的事务ID
mzxid:节点最后一个被更新时的事务ID
ctime:节点创建时间
mtime:节点最后一个被更新时间
version:节点版本号
cversion:子节点版本号
aversion:节点的ACL版本号
ephemeralOwner:创建该临时节点的会话的sessionID,若为持久节点则为0
dataLength:数据内容长度
numChildren:子节点数量
pzxid:创建持久节点的id??
5、权限控制ACL (Access Control Lists)
CREATE:创建子节点的权限
READ:获取节点数据和子节点列表的权限
WRITE:更新节点数据的权限
DELETE:删除子节点的权限
ADMIN:设置节点ACL的权限
经验分享 程序员 微信小程序 职场和发展