Zookeeper的基本概念

Zookeeper是一个开源的分布式协调服务,设计目标是将那些复杂的并且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集.并以一些简单的接口提供给用户使用.
Zookeeper是一个典型的分布式数据一致性解决方案,分布式应用程序,可以基于它实现诸如数据订阅,发布,负载均衡,命名服务,集群管理,分布式锁和分布式队列等功能.

集群角色
  1. Leader 读写服务
  2. Followers 读服务
  3. Observer 读服务
    Zookeeper集群中的所有机器通过Leader选举来选定一台被称为Leader的机器,
    Flollower和Observer都能提供读服务,唯一区别Observer不参与Leader 选举过程,不参与写操作的过半写成功策略

Observer可以在不影响写性能的情况下提升集群性能

会话-Session

Session指客户端会话,一个客户端连接是指客户端与服务端之间的TCP长连接,Zookeeper的对外端口默认为2181,客户端启动时,会先会与服务器建立一个TCP连接,从第一次连接建立开始,客户端的生命周期就开始了,通过这个连接,客户端能够心跳检测与服务器保存有效会话,也能向Zookeeper服务器发送请求并接受响应,同时还能够通过该连接接受来自服务器的Watch事件

数据节点-Znode

节点分为2类

  1. 指构成集群的机器,称之为机器节点
  2. 第二类,数据模型中的数据单元,称为数据节点-Znode
    Zookeeper中所有数据存储在内存中,数据模型是一棵树Znode Tree 由(/) 斜杠进行分割的路径,就是一个Znode,如 /app/path1,每个Znode上都会保存自己的数据内容,同时还会保存一系列属性消息
版本

Znode上都会有数据,对于每个Znode节点,都会维护一个叫State的数据结构,有三个版本号

  • version 当前Znode的版本
  • cversion 当前Znode的子节点的版本
  • aversion 当前Znode的ACL(权限)版本

Watchers-事件监听器

Watcher 是Zookeeper中一个很重要的特性,Zookeeper允许用户在指定节点上注册一些Watchers,并在一些特定事触发时,Zookeeper服务端会将事件通知到感兴趣的客户端,这个Watchers机制是Zookeeper实现分布式协调服务的重要特性

ACL-权限

五种权限

  • CREATE :创建子节点的权限
  • READ : 获取节点数据与子节点列表的权限
  • WRITE: 更新节点数据的权限
  • DELETE :删除子节点的权限
  • ADMIN: 设置节点ACL权限
    其中,CREATE 与DELETE 都是针对子节点的权限控制
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页