世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。

  1. zk是以树状结构进行存储的,树的结点znode分为持久节点、临时节点、顺序节点、临时顺序节点
  2. zk集群中有主节点和从节点,主节点的主要功能是分配任务,从节点的主要功能是执行任务
  3. 首先,主节点会创建三个持久节点:/workers、/tasks、/assing:
    1. /workers用来存储从节点
    2. /tasks用来发布任务
    3. /assing用来接收任务
  4. 当从节点连接到主节点后,会在/workers中创建一个代表从节点的临时节点,并在/assing中创建一个任务监听节点,并设置任务监听器
  5. 当客户端连接到主节点后,会在/tasks中发布任务并设置监听器等待执行结果
  6. 当主节点监听到客户端发布的任务以后,会访问/workers节点,从中选取可以执行该任务的从节点,并在/assing中通知选中的从节点执行任务
  7. 当从节点在/assing中监听到有任务要执行时,就会执行分配给自己的任务,当任务执行完成后会在/tasks中返回任务的执行状态
  8. 客户端监听到从节点执行任务的结果,从而获取
  9. 至此,整个调用过程就结束了

zk - zookeeper主节点、从节点、客户端三者之间的交互相关推荐

  1. zookeeper简介以及C客户端用法

    zookeeper简介以及C客户端用法 前言 简介 zookeeper保证 理解zookeeper的顺序一致性 zookeeper 接口 安装 zoo.cfg参数详解 常用命令 C API zooke ...

  2. zookeeper集群节点热扩容和迁移详解

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  3. zbb20180929 zk Zookeeper的功能以及工作原理

    1.ZooKeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交 ...

  4. [转]ExtJs基础--Html DOM、Ext Element及Component三者之间的区别

    要学习及应用好Ext框架,必须需要理解Html DOM.Ext Element及Component三者之间的区别. 每一个HTML页面都有一个层次分明的DOM树模型,浏览器中的所有内容都有相应的DOM ...

  5. TCP三次握手、四次挥手、socket,tcp,http三者之间的区别和原理

    接着上一篇文章叙述: TCP/IP连接(在互联网的通信中,永远是客户端主动连接到服务端): 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协 ...

  6. Zookeeper:实现节点Barriers(即限定操作)

    1.声明 当前内容主要用于本人学习和复习之用,当前内容主要为使用Zookeeper实现壁垒的方式控制当前线程什么时候停止什么时候继续 当前内容来源:Barriers伪代码流程 2.查看分析流程 客户端 ...

  7. ZooKeeper 之Apache Curator 客户端使用

    ZooKeeper 原生不足之处: 超时重连,不支持自动,需要手动操作 Watch注册一次后会失效 不支持递归创建节点 Apache Curator apache的开源项目,解决watcher注册一次 ...

  8. 【笔记】从 Paxos 到 Zookeeper:第七章 Zookeeper 技术内幕之客户端

    文章目录 系统模型 数据模型 节点特性 版本-保证分布式数据原子性操作 Watcher-数据变更通知 ACL-保障数据安全 序列化与协议 序列化 通信协议 客户端 一次会话的创建过程 初始化阶段 会话 ...

  9. 2021年大数据ZooKeeper(三):Zookeeper数据模型和节点类型

    目录 Apache ZooKeeper Zookeeper数据模型 Zookeeper节点类型 Apache ZooKeeper Zookeeper数据模型 图中的每个节点称为一个Znode. 每个Z ...

最新文章

  1. 数据驱动的未来城市八大趋势
  2. 【BZOJ 3729】3729: Gty的游戏 (Splay维护dfs序+博弈)
  3. 求数组中第k个最小数
  4. 【PC工具】常用USB转串口芯片CP210x驱动,CH340G驱动安装有可能遇到的问题及解决办法...
  5. 台湾国立大学郭彦甫Matlab教程笔记(20) root finding(numeric)
  6. Python之tushare:tushare库的简介、安装、使用方法之详细攻略
  7. Django(part37)--session
  8. Puppet实战笔记
  9. C#判断一个类中有无指定名称的方法
  10. Matplotlib中的“ plt”和“ ax”到底是什么?
  11. 一个优秀的可定制化Flutter相册组件,看这一篇就够了
  12. L1-040 最萌情侣身高差
  13. pytorch优化器学习率调整策略以及正确用法
  14. python全国计算机,加入 Python 科目,全国计算机等级考试迎来新调整
  15. Android apps浅析01-Amazed:一个简单但令人上瘾的加速度为基础的大理石指导游戏。
  16. Apache ShardingSphere-JDBC基本教程
  17. (信息物理系统)《An architectural approach to the design and analysis of cyber-physical systems》
  18. Mac下破解百度网盘限速(Chrome + Aria2GUI)
  19. 卢卡奇总体性原则_简述卢卡奇的总体性思想
  20. IP地址、子网掩码详解

热门文章

  1. 3Dunet 降假阳性模型预处理
  2. 计算机专业进国企有什么难度,大学毕业后才发现,国企与私企的差距不是一星半点,希望你没选错...
  3. 3种在JavaScript中验证电子邮件地址的方法
  4. 优化方法之黄金分割法(Python实现)
  5. java数据仓库的生鲜配送系统
  6. ios友联统计的一些功能
  7. Elasticsearch6.8开发指南-第三章-设置Elasticsearch
  8. FastJson的JSON.isValid()出现BUG!
  9. javascript面向对象的三大特性
  10. 如果把14亿中国人都拉到一个微信群。。。