ZooKeeper

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介:

什么是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实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
6月前
|
存储 分布式计算 算法
ZooKeeper
【6月更文挑战第21天】ZooKeeper
175 39
|
7月前
|
存储 分布式计算 资源调度
ZooKeeper详解
ZooKeeper是大数据组件中的协调器,确保高可用性和一致性。它用于监控主备节点切换(如Hadoop YARN的ResourceManager,HBase的RegionServer,Spark的Master)并实现数据同步。设计基于文件系统和通知机制,通过Znodes的状态变化(创建、删除、更新、子节点变化)进行协调。ZooKeeper使用观察者模式,当Znode变化时,通知客户端。其数据结构为树形,提供CLI工具如`zkCli.sh`进行交互。ZooKeeper有三个默认端口:2181(客户端连接),2888(服务器间同步),3888(选举)。选举采用半数机制,确保集群稳定性。
181 1
|
6月前
|
算法 Java Apache
你真的了解Zookeeper吗?
你真的了解Zookeeper吗?
53 0
|
运维 分布式计算 算法
Zookeeper解读
Zookeeper解读
73 0
|
存储 算法 Linux
Zookeeper
 ZooKeeper 是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper 通过其简单的架构和 API 解决了这个问题。ZooKeeper 允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。
155 0
|
存储 域名解析 负载均衡
Zookeeper—应用
前言 在前面的几篇文章中,我们讲解了ZooKeeper的组成,基本功能,集群选举,ZAB协议和数据一致性。所有的设计都因应用场景而生,不结合场景的方案都是耍流氓。在今天的文章中,我们将要去了解ZK的应用,加深对ZK的认识。
130 0
|
存储 设计模式 分布式计算
Zookeeper系列 (一)
Zookeeper 是 Apache 的一个分布式服务框架,是 Apache Hadoop 的一个子项目。
125 0
Zookeeper系列 (一)
|
存储 监控 Unix
一文了解Zookeeper
一文了解Zookeeper
267 0
一文了解Zookeeper
|
消息中间件 存储 分布式计算
初识ZooKeeper
特点、应用场景
591 0
|
存储 Dubbo 网络协议
关于ZooKeeper,你好像还有不知道的事情
Dubbo 通过注册中心在分布式环境中实现服务的注册与发现,而注册中心通常采用 ZooKeeper,研究注册中心相关源码绕不开 ZooKeeper,所以学习了 ZooKeeper 的基本概念以及相关 API 操作。
关于ZooKeeper,你好像还有不知道的事情