【转】分布式协调服务ZooKeeper工作原理

简介:

申明:本文转自分布式协调服务ZooKeeper工作原理,来自yogoup公众号。解决了我关于zookeeper这个系统的认识,zookeeper主要解决分布式系统的一致性问题,实际应用场景包括:统一命名服务、分布式配置管理、集群管理、分布式锁、分布式队列等。在微服务架构中,也可以使用zookeeper作为服务发现的中间件。

大数据处理框架Hadoop、Redis分布式服务Codis、淘宝的分布式消息中间件MetaMQ ……他们都使用ZooKeeper做为基础部件,可以看出ZooKeeper的强大。

ZooKeeper是什么

ZooKeeper(ZK)是一个分布式开源协调服务框架,是Google的Chubby一个开源的实现,是hadoop的一个子项目

主要用来解决分布式系统的一致性问题,封装好了复杂易出错的关键服务,通过简单的接口为外部提供高性能、稳定的服务

实际应用场景包括:统一命名服务、分布式配置管理、集群管理、分布式锁、分布式队列 ……

整体结构

对于外部,ZK是个整体,通过API与外部交流

ZK的内部,是个服务器集群,各服务器内数据完全相同,其中有一个server为leader,用来为其他server校准数据

client连接到ZK后,ZK会根据各个server的压力情况,把这个连接分配给合适的server,对client透明,client只知道自己已经和ZK连接了,不知道具体是哪个server。


zookeeper架构

每个服务器中,是一个分层的文件系统目录树结构,节点中可以保存数据

目录树和各节点数据都在内存中,所以运行很快,为了数据的安全,会备份到磁盘。


单台服务器的数据存储结构

工作流程

读操作非常简单,因为各个server的数据完全一致,client发送读请求时,与此client相连的server直接从自己内存获取数据返回给client,非常快。


读的流程

写操作会影响目录树结构和节点的数据内容,涉及到各个server间的数据一致性,所以不像读操作那么简单

步骤

(1)client发送写请求给与其相连的server

(2)server把写请求转给leader

(3)leader执行写操作,然后通知其他server:数据有变化,你们马上更新

(4)各server更新数据后,通知client写操作完成


写的流程


    相关文章
    |
    11月前
    |
    消息中间件 分布式计算 资源调度
    《聊聊分布式》ZooKeeper与ZAB协议:分布式协调的核心引擎
    ZooKeeper是一个开源的分布式协调服务,基于ZAB协议实现数据一致性,提供分布式锁、配置管理、领导者选举等核心功能,具有高可用、强一致和简单易用的特点,广泛应用于Kafka、Hadoop等大型分布式系统中。
    |
    数据采集 消息中间件 NoSQL
    分布式爬虫的全局请求间隔协调与IP轮换策略
    分布式爬虫的全局请求间隔协调与IP轮换策略
    |
    消息中间件 人工智能 监控
    文生图架构设计原来如此简单之分布式服务
    想象一下,当成千上万的用户同时要求AI画图,如何公平高效地处理这些请求?文生图/图生图大模型的架构设计看似复杂,实则遵循简单而有效的原则:合理排队、分工明确、防患未然。
    671 14
    文生图架构设计原来如此简单之分布式服务
    |
    NoSQL 算法 安全
    分布式锁—1.原理算法和使用建议
    本文主要探讨了Redis分布式锁的八大问题,包括非原子操作、忘记释放锁、释放其他线程的锁、加锁失败处理、锁重入问题、锁竞争问题、锁超时失效及主从复制问题,并提供了相应的优化措施。接着分析了Redis的RedLock算法,讨论其优缺点以及分布式专家Martin对其的质疑。此外,文章对比了基于Redis和Zookeeper(zk)的分布式锁实现原理,包括获取与释放锁的具体流程。最后总结了两种分布式锁的适用场景及使用建议,指出Redis分布式锁虽有性能优势但模型不够健壮,而zk分布式锁更稳定但部署成本较高。实际应用中需根据业务需求权衡选择。
    |
    存储 SpringCloudAlibaba Java
    【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
    一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
    【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
    |
    运维 NoSQL 算法
    【📕分布式锁通关指南 04】redis分布式锁的细节问题以及RedLock算法原理
    本文深入探讨了基于Redis实现分布式锁时遇到的细节问题及解决方案。首先,针对锁续期问题,提出了通过独立服务、获取锁进程自己续期和异步线程三种方式,并详细介绍了如何利用Lua脚本和守护线程实现自动续期。接着,解决了锁阻塞问题,引入了带超时时间的`tryLock`机制,确保在高并发场景下不会无限等待锁。最后,作为知识扩展,讲解了RedLock算法原理及其在实际业务中的局限性。文章强调,在并发量不高的场景中手写分布式锁可行,但推荐使用更成熟的Redisson框架来实现分布式锁,以保证系统的稳定性和可靠性。
    1402 0
    【📕分布式锁通关指南 04】redis分布式锁的细节问题以及RedLock算法原理
    |
    SQL 分布式计算 DataWorks
    MaxCompute MaxFrame评测 | 分布式Python计算服务MaxFrame(完整操作版)
    在当今数字化迅猛发展的时代,数据信息的保存与分析对企业决策至关重要。MaxCompute MaxFrame是阿里云自研的分布式计算框架,支持Python编程接口、兼容Pandas接口并自动进行分布式计算。通过MaxCompute的海量计算资源,企业可以进行大规模数据处理、可视化数据分析及科学计算等任务。本文将详细介绍如何开通MaxCompute和DataWorks服务,并使用MaxFrame进行数据操作。包括创建项目、绑定数据源、编写PyODPS 3节点代码以及执行SQL查询等内容。最后,针对使用过程中遇到的问题提出反馈建议,帮助用户更好地理解和使用MaxFrame。
    |
    消息中间件 存储 安全
    分布式系统架构3:服务容错
    分布式系统因其复杂性,故障几乎是必然的。那么如何让系统在不可避免的故障中依然保持稳定?本文详细介绍了分布式架构中7种核心的服务容错策略,包括故障转移、快速失败、安全失败等,以及它们在实际业务场景中的应用。无论是支付场景的快速失败,还是日志采集的安全失败,每种策略都有自己的适用领域和优缺点。此外,文章还为技术面试提供了解题思路,助你在关键时刻脱颖而出。掌握这些策略,不仅能提升系统健壮性,还能让你的技术栈更上一层楼!快来深入学习,走向架构师之路吧!
    886 12
    |
    SQL 分布式计算 数据处理
    云产品评测|分布式Python计算服务MaxFrame | 在本地环境中使用MaxFrame + 基于MaxFrame实现大语言模型数据处理
    本文基于官方文档,介绍了由浅入深的两个部分实操测试,包括在本地环境中使用MaxFrame & 基于MaxFrame实现大语言模型数据处理,对步骤有详细说明。体验下来对MaxCompute的感受是很不错的,值得尝试并使用!
    483 1
    |
    人工智能 分布式计算 数据处理
    云产品评测:MaxFrame — 分布式Python计算服务的最佳实践与体验
    阿里云推出的MaxFrame是一款高性能分布式计算平台,专为大规模数据处理和AI应用设计。它提供了强大的Python编程接口,支持分布式Pandas操作,显著提升数据处理速度(3-5倍)。MaxFrame在大语言模型数据处理中表现出色,具备高效内存管理和任务调度能力。然而,在开通流程、API文档及功能集成度方面仍有改进空间。总体而言,MaxFrame在易用性和计算效率上具有明显优势,但在开放性和社区支持方面有待加强。
    351 9

    热门文章

    最新文章