首页 > 其他分享 >ZooKeeper的基本概念

ZooKeeper的基本概念

时间:2023-04-25 16:02:01浏览次数:45  
标签:ZNode ZooKeeper 节点 权限 基本概念 数据模型 客户端


ZooKeeper是干啥的?

ZooKeeper是一个开源的分布式协调服务,他为分布式应用提供了高效且可靠的分布式协调服务,提供了诸如统一命名空间服务,配置服务和分布式锁等分布式基础服务。

ZooKeeper基本概念

集群角色

和Paxos算法中的集群角色类型,ZooKeeper中包含Leader、Follower和Observer三个角色;

通过一次选举过程,被选举的机器节点被称为Leader,Leader机器为客户端提供读和写服务;

Follower和Observer是集群中的其他机器节点,唯一的区别就是:Observer不参与Leader的选举过程,也不参与写操作的过半写成功策略。

一个典型的ZooKeeper集群如下:

ZooKeeper的基本概念_子节点

会话

会话就是一个客户端与服务器之间的一个TCP长连接。客户端和服务器的一切交互都是通过这个长连接进行的;

会话会在客户端与服务器断开链接后,如果经过了设点的sessionTimeout时间内没有重新链接后失效。

节点

节点在ZeeKeeper中包含两层含义:

  1. 集群中的一台机器,我们成为机器节点;
  2. ZooKeeper数据模型中的数据单元,我们成为数据节点(ZNode)。

ZooKeeper的数据模型是内存中的一个ZNode数,由斜杠(/)进行分割的路径,就是一个ZNode,每个ZNode上除了保存自己的数据内容,还保存一系列属性信息;

ZooKeeper中的数据节点分为两种:持久节点和临时节点。

所谓的持久节点是指一旦这个ZNode创建成功,除非主动进行ZNode的移除操作,节点会一直保存在ZooKeeper上;而临时节点的生命周期是跟客户端的会话相关联的,一旦客户端会话失效,这个会话上的所有临时节点都会被自动移除。

版本

ZooKeeper为每一个ZNode节点维护一个叫做Stat的数据结构,在Stat中维护了节点相关的三个版本:

  1. 当前ZNode的版本 version
  2. 当前ZNode子节点的版本 cversion
  3. 当前ZNode的ACL(Access Control Lists)版本 aversion

监听器Watcher

ZooKeeper允许用户在指定节点上注册一些Watcher,并且在一些特定事件触发的时候,ZooKeeper会通过事件通知到感兴趣的客户端上。

ACL(Access Control Lists)

ZooKeeper中定义了5中控制权限:

  1. CREATE:创建子节点的权限
  2. READ:获取节点数据和子节点列表的权限
  3. WRITE:跟新节点数据的权限
  4. DELETE:删除子节点的权限
  5. ADMIN:设置节点ACL的权限。

其中CREATE和DELETE这两种权限都是针对子节点的权限控制。

ZooKeeper的数据模型

上面有提到ZooKeeper的数据模型是一个ZNode节点树,是一个类型与标准文件系统的层次结构,也是使用斜杠(/)进行分割,如下图:

ZooKeeper的基本概念_客户端_02

在ZooKeeper中每一个节点都可以使用其路径唯一标识,如节点p_1的标识为:/app1/p_1

每个ZNode节点都可以存储自己的数据,还可以拥有自己的子节点目录。

参考

http://zookeeper.apache.org/doc/trunk/zookeeperOver.html

《从Paxos到ZooKeeper分布式一致性原理与实践》

https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/


标签:ZNode,ZooKeeper,节点,权限,基本概念,数据模型,客户端
From: https://blog.51cto.com/u_16081664/6224231

相关文章

  • win环境基于docker搭建zookeeper伪集群
    创建路径:D:\Docker\zk-cluster在此路径下创建配置文件:docker-compose.ymlversion:'2'networks:zk-net:name:zk-netservices:zoo1:image:zookeeperrestart:alwayscontainer_name:zoo1ports:-"21......
  • zookeeper系列之通信模型
    本文的主题就是讲解Zookeeper通信模型,本节将通过一个概要图来说明Zookeeper的通信模型。Zookeeper的通信架构在Zookeeper整个系统中,有3中角色的服务,client、Follower、leader。其中client负责发起应用的请求,Follower接受client发起的请求,参与事务的确认过程,在leadercrash后的leade......
  • 地统计学的基本概念及公式详解
      本文对插值、平稳假设、变异函数、克里格等常用的地学计算概念加以介绍,并对相关公式进行推导。目录1引言2空间插值3几个重要假设3.1平稳假设3.2二阶平稳性假设3.3本征假设3.4不同假设对比4变异函数5克里格插值6回归克里格1引言  最近的几篇博客,分别从遥感的实......
  • zookeeper下载安装
    1、下载zookeeper官网下载地址:https://zookeeper.apache.org/从国内开源网站下载镜像:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper2、解压如果解压时提示文件已经存在,可能是因为压缩软件不支持解压tar.gz压缩包,可以打开WindowsPowerShell,在执行tar-zxvf.\apache......
  • web基本概念
    1.基本概念1.1前言web:开发:web,网页的意思,www.baidu.com静态web:html.css提供给所有人看的数据始终不会发生变化动态web每个人在不同时间不同地点看到的信息各不相同例如:淘宝,大部分网站...技术栈:Serverlt,ASP,php在java中,动态web资源开发的技术统称为j......
  • 单细胞转录组基本概念(一)
    普通转录组的思路也可以应用到单细胞转录组。普通转录组相当于把一群细胞或一个器官混合到一起去提取RNA,获得的是每个细胞中RNA表达量的平均值。单细胞是把每个细胞单独分出来去提取RNA,然后建库测序,获得是是单个细胞的表达值。在每个细胞里面基因的表达具有随机性,且存在异质性。而......
  • Socks5代理与HTTP代理:基本概念、工作原理和在网络应用中的应用
      在互联网上,代理服务器是一种非常重要的技术手段,可以实现许多网络应用的高效和安全运行。Socks5代理和HTTP代理是两种常见的代理服务器类型,它们在网络应用中都有着重要的作用。本文将介绍Socks5代理和HTTP代理的基本概念、工作原理以及在网络应用中的应用。第一部分:Socks5代理......
  • 机器学习的一些基本概念(函数/标准化/梯度下降/正则化)
    基本概念各种函数损失函数(LossFunction)度量单样本****或者一个批次的样本预测的错误程度,损失函数越小,模型就越好。常用的损失函数包括:0-1损失函数、平方损失函数、绝对损失函数、对数损失函数等代价函数(CostFunction)度量全部样本集的平均误差。常用的代价函数包括均方误差、......
  • HTTP协议的基本概念
    HTTP协议简介HTTP(HyperTextTransferProtocol,超文本传输协议)是一种用于传输超媒体文档(例如HTML)的应用层协议。HTTP协议是一个无状态的协议,意味着服务器并不会记住任何之前的请求和响应。HTTP协议基于客户端-服务器架构模型,客户端发送一个请求到服务器,然后服务器处理请求并发......
  • kafka、zookeeper配置运行的坑
    1、Windows安装zookeeper的时候,zookeeper.properties里dataDir=D:\\kafka_2.13-2.8.1\\data\\zookeeper路径要用双斜杠,否则报错2、idea里,application.yml里,bootstrap-servers:192.168.10.3:2181,192.168.10.50:2181,192.168.10.6:2181注意,冒号后面要有一个空格,否则报错......