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

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 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实现微服务的全链路灰度
    通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
    相关文章
    |
    24天前
    |
    存储 缓存 算法
    分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
    【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
    54 3
    |
    30天前
    |
    消息中间件 监控 Ubuntu
    大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
    大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
    64 3
    大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
    |
    26天前
    |
    监控 Dubbo Java
    dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
    这篇文章详细介绍了如何将Spring Boot与Dubbo和Zookeeper整合,并通过Dubbo管理界面监控服务注册情况。
    63 0
    dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
    |
    30天前
    |
    分布式计算 NoSQL Java
    Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
    Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
    40 2
    |
    30天前
    |
    分布式计算 负载均衡 算法
    Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
    Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
    27 1
    |
    30天前
    |
    分布式计算 监控 Hadoop
    Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
    Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
    36 1
    |
    30天前
    |
    分布式计算 Hadoop
    Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
    Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
    42 1
    |
    1月前
    |
    分布式计算 Hadoop 网络安全
    Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
    Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
    28 1
    |
    1月前
    |
    存储 机器学习/深度学习 缓存
    Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
    Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
    39 1
    |
    24天前
    |
    存储 缓存 数据处理
    深度解析:Hologres分布式存储引擎设计原理及其优化策略
    【10月更文挑战第9天】在大数据时代,数据的规模和复杂性不断增加,这对数据库系统提出了更高的要求。传统的单机数据库难以应对海量数据处理的需求,而分布式数据库通过水平扩展提供了更好的解决方案。阿里云推出的Hologres是一个实时交互式分析服务,它结合了OLAP(在线分析处理)与OLTP(在线事务处理)的优势,能够在大规模数据集上提供低延迟的数据查询能力。本文将深入探讨Hologres分布式存储引擎的设计原理,并介绍一些关键的优化策略。
    76 0

    热门文章

    最新文章