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

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

申明:本文转自分布式协调服务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写操作完成


写的流程


    相关实践学习
    基于MSE实现微服务的全链路灰度
    通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
    相关文章
    |
    1月前
    |
    存储 缓存 算法
    分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
    【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
    73 3
    |
    2月前
    |
    安全 应用服务中间件 API
    微服务分布式系统架构之zookeeper与dubbo-2
    微服务分布式系统架构之zookeeper与dubbo-2
    |
    13天前
    |
    存储 Dubbo Java
    分布式 RPC 底层原理详解,看这篇就够了!
    本文详解分布式RPC的底层原理与系统设计,大厂面试高频,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
    分布式 RPC 底层原理详解,看这篇就够了!
    |
    1月前
    |
    分布式计算 NoSQL Java
    Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
    Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
    45 2
    |
    1月前
    |
    分布式计算 负载均衡 算法
    Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
    Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
    30 1
    |
    1月前
    |
    分布式计算 监控 Hadoop
    Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
    Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
    42 1
    |
    1月前
    |
    分布式计算 Hadoop
    Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
    Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
    48 1
    |
    1月前
    |
    分布式计算 Hadoop 网络安全
    Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
    Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
    37 1
    |
    1月前
    |
    存储 机器学习/深度学习 缓存
    Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
    Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
    48 1
    |
    2月前
    |
    数据采集 分布式计算 MaxCompute
    MaxCompute 分布式计算框架 MaxFrame 服务正式商业化公告
    MaxCompute 分布式计算框架 MaxFrame 服务于北京时间2024年09月27日正式商业化!
    93 3
    下一篇
    无影云桌面