ZooKeeper

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介:

什么是ZooKeeper

官网给于解释是:
image
centralized service 集群服务
maintaining 维护

意思就是ZooKeeper是一个为 维护配置信息,域名维护, 提供分布式同步以及集体服务的集群服务系统. 所有的这些服务通常被用于其他分布式应用上.每次他们用于实现 大量关于 修复不可避免的bugs和线程竞争 的工作.由于实现这些服务的困难,最初的应用程序通常会对它们进行节省,这使得它们在出现变化和难以管理时变得脆弱.即使在正确的情况下,这些服务的不同实现在应用程序部署时也会导致管理复杂性。

百度给出的解释是:

image

原理

ZooKeeper是以Fast Paxos算法为基础的,paxos算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos作了一些优化,通过选举产生一个leader,只有leader才能提交propose,具体算法可见Fast Paxos。因此,要想弄懂ZooKeeper首先得对Fast Paxos有所了解。

Zookeeper 的基本运转流程
1.选举leader
2.同步数据
3.选举leader过程中算法有很多,但要达到的选举标准是一致的.
4.leader要具有最好的执行权
5.集群中大多数的及其得到响应并接受选出的leader

架构
image
功能
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一域名服务、状态同步服务、集群管理、分布式应用配置项的管理等
数据结构
image
Zookeeper这种数据结构有如下这些特点:

1.每个子目录下如NameService都被称作znode这个znode是被它所在的路径唯一标识,如Server1这个znode的表示为NameService/server1
2.znode可以有子节点目录,并且znode可以存储数据,注意EPHEMERAL
3.znode是有版本的,每个znode中存储的数据可以有多个版本,也就是一个访问路径可以存储多份数据
4.znode可以使临时节点,一旦创建这个znode的客户端与服务器失去联系,这个znode也将自动删除,Zookeeper的客户端和服务端通信采用长连接方式,每个客户端和服务器通过心跳来保持连接,这个链接状态称为session如果znode是临时节点,这个session失效.znode也就删除
znode可以被临时控制,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个是Zookeeper的核心特性,Zookeeper的很多功能是居于这个特性实现的

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
9月前
|
存储 容灾 算法
深入理解Zookeeper系列-1.初识Zoookeeper
深入理解Zookeeper系列-1.初识Zoookeeper
134 0
|
8月前
|
存储 分布式计算 算法
ZooKeeper
【6月更文挑战第21天】ZooKeeper
189 39
|
8月前
|
消息中间件 分布式计算 负载均衡
ZooKeeper在哪些场景中被使用?
【6月更文挑战第21天】ZooKeeper在哪些场景中被使用?
231 38
|
8月前
|
存储 Java 数据库
对于Zookeeper的一些理解
该文档介绍了如何使用ZooKeeper实现统一配置、命名服务和分布式锁以及集群管理。首先,为了解决多个系统重复配置的问题,提出了抽取公共配置到`common.yml`并存储在ZooKeeper中的方法,系统通过监听ZNode变化实时更新配置。接着,详细说明了配置管理的实现步骤,包括在服务器端将配置同步到ZooKeeper,以及客户端监听配置变更。此外,还解释了命名服务如何根据名称获取服务地址,并以域名访问为例进行了说明。最后,讨论了ZooKeeper实现的两种分布式锁策略,并阐述了其在集群管理中的应用,如检测节点状态变化和选举Master节点。
|
8月前
|
算法 Java Apache
你真的了解Zookeeper吗?
你真的了解Zookeeper吗?
58 0
|
运维 分布式计算 算法
Zookeeper解读
Zookeeper解读
83 0
|
JSON Linux Shell
zookeeper
zookeeper
192 0
|
存储 域名解析 负载均衡
Zookeeper—应用
前言 在前面的几篇文章中,我们讲解了ZooKeeper的组成,基本功能,集群选举,ZAB协议和数据一致性。所有的设计都因应用场景而生,不结合场景的方案都是耍流氓。在今天的文章中,我们将要去了解ZK的应用,加深对ZK的认识。
140 0
|
消息中间件 存储 分布式计算
初识ZooKeeper
特点、应用场景
602 0
|
存储 消息中间件 算法
ZooKeeper 到底解决了什么问题?
目标 ZooKeeper 很流行,有个基本的疑问: ZooKeeper 是用来做什么的? 之前没有ZK,为什么会诞生 ZK?
359 0
ZooKeeper 到底解决了什么问题?