ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

03 | Zookeeper 的基本介绍

2022-06-04 01:01:24  阅读:201  来源: 互联网

标签:03 顺序 Zookeeper 介绍 Leader 集群 znode 节点


1. 什么是 Zookeeper?

Zookeeper 是一个开源的高效可靠的分布式协同服务

可以通过 Zookeeper 实现统一配置管理、统一命名服务、分布式锁、集群管理等

Zookeeper 更适用于存储和协同相关的关键数据,更适用于读多写少的应用场景

Zookeeper 有哪些特性(官方说是构建复杂服务的保证)?

  • 顺序一致性(事务请求都是有序执行的)
  • 原子性
  • 单一视图(从集群任一节点获取的数据都是一致的)
  • 可靠性
  • 实时性

2. Zookeeper 的数据模型

Zookeeper 的数据模型是类似文件系统的层次模型

Zookeeper 的层次模型被称为 data-tree,date-tree 的每个节点叫做 znode:

  • znode 是类 unix 风格的路径名来定位的,eg:/a/b,表示 znode节点 a 下的 子节点 b

  • znode 的所有操作都是 wait-free 操作(一个操作是否执行完并不影响其他操作的执行)

  • znode 分类:

    • 持久性的 znode,创建之后一直保留,不会丢失
    • 临时性的 znode,宕机或者超时就会丢失
    • 持久顺序性的 znode,具有顺序性的持久性的 znode
    • 临时顺序性的 znode

    znode 的顺序性直观的表现在 znode 命名上,每一个顺序性的 znode 关联一个单调递增的整数,可能是后缀,也可能是命名

  • znode 的基本操作:

    • create:创建节点
    • delete:删除节点
    • setData:写入需保存的数据到节点内
    • exists:判断节点是否存在
    • getData:获取节点保存的数据
    • getChildren:获取节点下所有子节点

3. Zookeeper 集群角色

Zookeeper 的集群角色有:

  1. Leader:负责处理所有事务请求(写操作),同时也可以处理读操作,协调集群内部服务
  2. Follower:只能处理非事务请求(读操作),
  3. Observer:只能处理读请求,转发写请求给 Leader 处理

Zookeeper 是一主多从的架构,所以集群中只能有一个 Leader

集群搭建的配置中看,我们并没有指定集群的角色,因为 Zookeeper 集群的 Leader 是运行时动态选举出来的:一个节点获取超过半数节点的票数,就可以当选 Leader

如果 Leader 失联,则从 Follower 中重新选举,Observer 并不参与选举

Observer 负责观察 Zookeeper 集群的状态并进行同步,在不影响集群的情况下降低 Leader 的复杂程度

因为 Follower 数量比较多的时候,投票的过程会成为 Zookeeper 的性能瓶颈,因为选举过程 Zookeeper 是不能处理请求的

具体的选举过程后面在学习

标签:03,顺序,Zookeeper,介绍,Leader,集群,znode,节点
来源: https://www.cnblogs.com/ly-az/p/16341109.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有