问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

[ZooKeeper之五] 使用 ZooKeeper 实现主-从模式

发布网友 发布时间:2023-02-27 04:28

我来回答

1个回答

热心网友 时间:2023-04-27 08:52

  在 [ZooKeeper之一] ZooKeeper简介 中,介绍了主-从架构,再简单回顾下,首先主-从架构中要有一个主,Master 接受客户端提交任务,同时监测每个 worker 的状态,并将任务分配给 worker 执行,worker 负责执行 Master 分配的任务并返回执行结果,Master 收到执行结果时将其返回给客户端。

(1)主节点选举和故障转移

  主-从模式,首先要有一个主节点,由多个备用节点选举产生,选出主节点后,没当选主节点的备用节点就会设置一个对主节点的*,当主节点发生故障时,所有备用节点都会收到通知,并重新选举出新的主节点。

(2)从节点的动态检测

  从节点负责执行主节点分配的任务,为了让主节点能感知到从节点的存在,需要在 ZooKeeper 的某一指定路径下(比如 /workers )创建一个代表工作节点对应的 znode,当某个从节点发生故障时,该 znode 应该被自动删除,所以使用临时节点来创建对应的znode。

(3)客户端和任务

  客户端向系统中提交任务,并等待系统返回执行结果。同样地,我们需要在 ZooKeeper 的某一指定路径下(比如 /tasks )创建znode,每个znode表示一个任务,为了防止系统故障导致提交的任务丢失,所以表示任务的 znode 应该用持久节点。

  接下来,启动好 ZooKeeper 服务端和客户端工具,实现它!


  ZooKeeper 通过多个节点进行同时尝试创建某个znode(比如 /lock ),可以实现一个简单的分布式锁,哪个节点进程成功创建了 /lock ,就说它抢到了锁。锁原语同样可用于确定主节点,假如创建的znode为 /master ,为了防止抢到锁之后主节点挂掉之后,无法重新竞争出新的主节点,需要将 /master 以临时节点的形式创建,从锁的角度看,是先释放锁资源才能让备用节点们去抢锁。

  这里启动多个 zkcli 终端来表示多个不同抢锁的节点

  当一个节点去抢锁竞争主节点时,会遇到两种情况:一种是成功抢到锁;另一种是抢锁失败,提示节点已经存在,这时候需要去设置对应的*,这样当锁被释放时,可以收到通知重新抢锁。下面分别用节点1、节点2来表示这两种情况:

  现在关掉节点1的终端,模拟主节点故障的情况,等过了超时时间,可以看到节点2收到通知

  这时候备用节点有机会抢到锁,由于这里只有一个备用节点没人抢,所以成功转正

  主节点需要先创建约定好的目录来放工作节点、任务以及任务分配,并且需要动态监控工作节点和任务的变化,所以还需要设置工作节点目录和任务目录的*



  首先需要在 /workers 目录下创建一个子节点,然后从节点需要在 /assign 下创建一个子节点来接收主节点分配的任务,由于子节点需要动态检测分配任务的变化,所以还需要对分配任务目录设置*。



  客户端通过在 /tasks 下创建znode来表示一个任务

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么一些男性喜欢要求伴侣叫自己爸爸? proteus8中怎么放置引脚标号 ...在proteus里不知道用什么表示?有没有什么proteus中专门的中英文对照... 甜蜜家园郑毅铭是什么身份 甜蜜家园第二季郑毅铭喜欢谁 瑞梦喜智能空调床垫适合人群 小孩可以用智能床垫吗 智能床垫适合哪些人用 我父亲今年59岁,有高血压和颈椎病的病史,最近一段时间感觉一躺下就偏... ...刚从医院治疗回来。我想买个枕头给他,不知买怎样的比较好?_百度知 ... 有什么正规的外汇平台吗 水里生的开白色有香味的花叫什么 His father works in a zoo as a zookeeper. 句子里as a zookeeper什么... 跟诗酒趁年华配的句子 跟诗酒趁年华配的句子精选 太吾绘卷为什么悲极啊 家有自闭症小朋友,家长心得 女生昵称一个字 tangle意思 水果能放在微波炉里加热吗? evcard电动汽车怎么启动不了 流动负债包括什么科目? 如果汽车膜过黑应该怎么办啊? 梦见被狗咬伤。。。什么意思 女人梦见狗被追着咬是什么意思 西安的历史及人文环境? 重庆大学有花溪 还有虎溪是什么意思? 宝沃汽车是哪国的品牌? 入洞房是怎么来的? 高尔夫与高尔夫嘉旅的区别是什么? C语言编程中编译运行正常,但是这一部分的功能不能正常使用怎么办 how do you like the shoes? they are made by expe 龙场在古时是什么意思? 安恒信息为什么叫龙场 医保个人账户余额在哪里查?医保个人账户余额查询方式 医保个人账户如何进行查询 上班族怎么增肥 怎样在短时间内增肥 用微波炉如何做蛋挞 什么什么摇篮造句 leave off是什么意思 三个字是石的四字成语有哪些 手术后能喝虫草花汤吗 冬虫夏草吃多久才有效果 冬虫夏草术后可以吃吗 三类人不适合吃冬虫夏草 术后多久可以吃冬虫夏草 手术外伤缝针厚可以吃冬虫夏草吗 连词成句:1、is / there / a / piano / in / sitting-room /... 火龙果和桃子可以一起榨汁吗? 请问桃子跟火龙果可以一起吃吗? 油桃一天吃几个 吃多了油桃会怎样 油桃吃多了会不会胖 油桃一天吃多少合适 地砖美缝简单易学的方法 地砖美缝简单易学的方法与步骤