千家信息网

ZooKeeper分析是怎么样的

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章给大家介绍ZooKeeper分析是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一 :分布式系统简介分布式系统是同时跨越多个物理主机,独立运行的多个软件所组成的系
千家信息网最后更新 2025年02月05日ZooKeeper分析是怎么样的

这篇文章给大家介绍ZooKeeper分析是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

一 :分布式系统简介

分布式系统是同时跨越多个物理主机,独立运行的多个软件所组成的系统。在这样的分布式系统中,如何保证节点信息同步和共享便是一个麻烦的事情,而ZooKeepe最主要的使用场景,便是作为分布式系统的协同服务,用来解决这些问题。

分布式的协同服务就是通过某种方式,让每个节点的信息都能够同步和共享。这依赖于服务进程之间的通信。通信方式有:

  • 通过网络进行信息共享

例:现实中开发leader在会上将任务传达下去,组员通过听leader的命令或查看leader的邮件知道自己要干什么。当任务分配出现变化时,leader会单独通知组员或再次召开会议。信息通过人与人间的直接沟通,完成传递。

  • 通过共享存储

例:开发leader按照约定的时间和路径,把任务分配表放到了SVN,组员每天去SVN上拉取最新的任务分配表,然后干活;当SVN文件版本更新时,触发邮件通知,每个组员再去拉取最新的任务分配表。其中SVN就是共享存储。

二:ZooKeeper如何实现分布式的协同服务

解决分布式协同服务有二种方式,ZooKeeper采用了共享存储的方式解决,但实际上分布式应用也需要和存储进行网络通信。

通过ZooKeeper实现分布式协同的原理,跟上面SVN的例子类似。ZooKeeper就像SVN一样存储了任务的分配、完成情况等共享信息。每个分布式系统的节点就像是组员,订阅了这些共享信息。当主节点(组leader),对某个从节点的分工信息作出改变时,相关订阅的从节点得到ZooKeeper的通知,取得自己最新任务分配。从节点完成工作后,把完成的情况存储到zookeeper,主节点订阅了该任务的完成情况信息,所以会得到zookeeper的完工通知。

注意:Slave节点要想获取ZooKeeper的更新通知,需要事先在关心的数据节点上设置观察点

如果各个节点间信息不能及时共享和同步,那么就会在协作过程中产生过各种各样的问题。ZooKeeper解决协同问题的关键就在于保证分布式系统信息的一致性

三:ZooKeeper概念了解

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

首先要学习ZooKeeper得大致了解下面的几种概念:

3.1 集群角色

在分布式系统中,通常构成集群的每一台机器都有自己的角色,最典型的就是主备模式(Master/Slave),能够处理写的就是master机器,把通过异步复制方式获取最新数据并提供读服务的称为Slave机器。而在ZooKeeper中并未采取这些概念,而是引入了Leader、Follower、Observer三种角色。

为方便理解,可以先了解下Paxos及Raft等解决分布式一致性的算法等理论知识。虽然Zookeeper并没有直接采用Paxos算法,而是采用了一种被称为ZAB(Zookeeper Atomic Broadcast)的一致性协议。分布式(一)--简介及理论

  • Leader:zookeeper中的所有机器通过选举来选定一台被称为Leader的机器,用来提供读和写服务。

  • Follower:提供读服务、及选举leader服务。

  • Observer:也能提供读服务,区别在于不参与选举,不参与写操作的过半成功策略,同时作为选举的记录者。

3.2 会话(session)

session指客户端会话,一个客户端连接指客户端和服务端的一个TCP长连接。

ZooKeeper对外的服务端口默认为2181,客户端启动时会与服务器建立一个tcp长连接,从第一次连接建立开始,客户端会话的生命周期也就开始了。通过这个连接客户端能够进行心跳检测与服务器保持有效的会话,也能够向ZooKeeper服务器发送请求并接收响应,同时还可以通过连接接受来自服务器的watch事件通知

3.3 数据节点(ZNode )

分布式中通常讲的节点就是指一台机器,但在ZooKeeper中节点分为两类:

  • 机器节点:构成集群的机器

  • 数据节点(ZNode );ZooKeeper将所有的数据存储在内存中,数据模型是一颗树(ZNode Tree),如下图所示。

树中的每一个节点就是一个ZNode,每个ZNode上面会保存自己的数据内容及一系列属性信息。

3.4 版本

对于每个ZNode,ZooKeeper都会对其维护一个叫做Stat的数据结构。这个Stat数据结构记录了当前这个ZNode的三个数据版本:

  • version:当前ZNode的版本

  • cversion:当前ZNode子节点的版本

  • aversion:当前ZNode的ACL版本

3.5 Watcher(事件监听器)

Watcher事件监听器,是ZooKeeper实现分布式协调服务的重要特性,ZooKeeper允许用户在指定节点注册一些Watcher,并在一些特定事件触发时,ZooKeeper会将事件通知给感兴趣的客户端

3.6 ACL(Access Control Lists)

ZooKeeper采用ACL策略来进行权限控制,有如下五种权限:

  • CREATE:创建子节点的权限

  • READ:获取节点数据及子节点列表的权限

  • WRITE:更新节点数据的权限

  • DELETE:删除子节点的权限

  • ADMIN:设置节点ACL的权限

关于ZooKeeper分析是怎么样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

节点 分布式 服务 数据 信息 任务 机器 系统 客户 客户端 权限 存储 就是 版本 分配 事件 方式 组员 一致 一致性 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 电脑软件开发小程序 db2数据库的编程语言 网络安全十大套路 软件开发公司人事行政 昆明市网络安全和信息化 gpu服务器适合做什么服务 叠拓嵌入式软件开发笔试题目 网络流媒体视频存储服务器价格 两台服务器通过网线连接 网络安全案例单选题 明日之后如何卸载服务器 免视频剪辑软件开发 信息网络安全的论文 未来互联网科技时代 软件开发税收编码 网络安全防诈骗手抄报五年级 电脑网络技术专业是什么 养鲲传奇 数据库 闵行区智能化软件开发信息中心 剑三 哪个服务器好 奥的斯电梯不用服务器怎么选层 数据库中有哪三种类型的表 普通手机网络安全需求 拉萨软件开发 赣州市网络安全知识竞赛题库 质谱分子式检索数据库 数据库如何保障数据安全性 新疆财经大学网络安全专业怎么样 小米升级为什么服务器连不上 广州软件开发的发展前景
0