Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器

章节内容

上节我们完成了:

  • ZNode的基本介绍
  • ZNode节点类型的介绍
  • 事务ID的介绍
  • ZNode实机测试效果

背景介绍

这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。

  • 2C4G 编号 h121
  • 2C4G 编号 h122
  • 2C2G 编号 h123

在这里插入图片描述

Wacher 机制

ZooKeeper 使用Watcher机制实现分布式数据的发布/订阅功能。
一个典型的发布/订阅模型定义了一对多的订阅关系,能够让多个订阅者同时监听一个主题对象,当这个主题对象自身状态变化时,会通知所有订阅者,使他们能够做出相应的处理。

在这里插入图片描述

ZooKeeper 的 Watcher 机制主要包括:

  • 客户端线程
  • 客户端 Watcher Manager
  • ZooKeeper服务器

Watcher 机制的工作原理

注册节点

客户端可以在读取或获取某个节点的数据时,选择注册一个 Watcher。
可以通过 getData(), getChildren(), 和exists() 等方法来注册 Watcher。
注册 Watcher 时,客户端发送一个请求到 ZooKeeper 服务器,服务器将这个 Watcher 记录在相应节点的 Watcher 列表中。

触发节点

当节点发生变化时(例如节点的数据变化节点的创建或删除子节点的变化等),ZooKeeper 服务器会触发相应节点上的 Watcher。
Watcher 触发是一次性的。当一个 Watcher 被触发后,它就不再活跃,如果客户端需要继续监视该节点,则需要重新注册 Watcher

进行通知

被触发的 Watcher 会向客户端发送一个事件通知(WatchedEvent)。该事件包含了事件的类型(如节点创建、删除或数据变化)和受影响的节点路径。
客户端在接收到通知后,可以根据需要采取相应的行动,例如重新获取节点数据重新注册 Watcher

Watcher特点

  • 一次性:Watcher 机制是一次性的,客户端需要在每次事件发生后重新注册 Watcher 以继续监视节点。
  • 异步通知:Watcher 事件是异步通知的,这意味着客户端注册 Watcher 后不会阻塞等待事件的发生,而是通过事件通知机制处理事件。
  • 轻量级:Watcher 是轻量级的,不会对 ZooKeeper 服务器带来显著的性能负担。

Watcher 使用场景

  • 配置管理:在分布式系统中,多个服务可能依赖同一个配置。通过 Watcher 机制,可以实现配置的动态更新,当配置变更时,所有依赖该配置的服务都能及时收到通知并进行更新。
  • 服务发现:在服务发现机制中,客户端可以通过 Watcher 监视服务节点的变化,当有新服务加入或服务下线时,客户端能够及时感知并更新服务列表。
  • 分布式锁:在实现分布式锁时,可以使用 Watcher 机制监控锁节点的状态,当锁被释放时,等待的客户端可以收到通知并尝试获取锁。

创建节点

永久节点

create /wzk 123456

顺序节点

create -s /wzk-order 654321

临时节点

create -e /wzk-temp 123123

在这里插入图片描述

读取节点

列出节点

ls /

查看数据

get /wzk

在这里插入图片描述

更新节点

set /wzk-temp 111222

删除节点

delete /wzk-temp

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/46753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

品牌形象的智能塑造:Kompas.ai如何构建品牌视觉识别

品牌形象是企业在消费者心中构建的独特印象,它对于品牌识别和记忆度至关重要。一个一致且具有辨识度的品牌形象能够帮助企业在激烈的市场竞争中脱颖而出。Kompas.ai,作为一款智能设计工具,正帮助品牌塑造和维护其独特的视觉识别系统。 一致的…

JMeter进行HTTP接口测试的技术要点

参数化 用户定义的变量 用的时候 ${名字} 用户参数 在参数列表中传递 并且也是${} csv数据文件设置 false 不忽略首行 要首行 从第一行读取 true 忽略首行 从第二行开始 请求时的参数设置: 这里的名称是看其接口需要的请求参数的名称 这里的变量名称就是为csv里面…

帮助中心如何提高用户粘性和活跃度?

帮助中心(Help Center)是在产品网站或者产品内部设立的一个功能模块,用于将产品使用上遇到的问题,或者关于产品的所有问题进行汇总,并通过Q&A(问题与解答)的形式展现给用户,帮助…

【linux】服务器重装系统之系统盘写入准备

【linux】服务器重装系统之系统盘写入准备 【创作不易,求点赞关注收藏】😀 文章目录 【linux】服务器重装系统之系统盘写入准备一、前期准备1、准备一个U盘,并进行格式化2、下载UltralSO工具3、下载对应的Ubuntu版本 二、写入操作教程 一、…

论文分享|AAAI2024‘北航|用大语言模型缩小有监督和无监督句子表示学习的差距

先说结论,大语言模型除了作为聊天的Agent,也可以为检索模型生成优质的文本对训练数据,从而做到无监督场景下也能够适用。这里分享一篇AAAI2024的工作,重点探讨如何生成比评估集更困难的训练数据来提升无监督句子表示学习质量&…

Zynq系列FPGA实现SDI编解码转SFP光口传输(光端机),基于GTX高速接口,提供6套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案在Xilinx-Kintex7上的应用 3、详细设计方案设计原理框图输入Sensor之-->OV5640摄像头输入Sensor之-->HDMIVDMA图像缓存RGB转BT1120GTX 解串与串化SMPTE SD/HD/3G SDI IP核BT1120转RGBHDMI输…

Java二十三种设计模式-适配器模式(6/23)

适配器模式:使不兼容的接口协同工作的桥梁 引言 适配器模式(Adapter Pattern)是一种结构型设计模式,它允许不兼容的接口之间可以一起工作,通过将一个类的接口转换成客户端期望的另一个接口。 在计算机编程中&#x…

C语言 ——— 调试的时候如何查看当前程序的变量信息

目录 调试前/后的调试窗口 ​编辑 调试窗口 --- 监视 调试窗口 --- 内存 调试窗口 --- 调用堆栈 调试前/后的调试窗口 调试前的调试窗口: 调试前的调试窗口是没有显示的,只有在调试的时候才会有相对应的调试窗口 调试后的调试窗口&#xff1a…

【JVM基础01】——介绍-初识JVM运行流程

目录 1- 引言:初识JVM1-1 JVM是什么?(What)1-1-1 概念1-1-2 优点 1-2 为什么学习JVM?(Why) 2- 核心:JVM工作的原理(How)⭐2-1 JVM 的组成部分及工作流程2-2 学习侧重点 3- 小结(知识点大纲):3-1 JVM 组成3…

风险评估:IIS的安全配置,IIS安全基线检查加固

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。 这一章节我们需…

MySQL运维实战之ProxySQL(9.9)proxysql自身高可用

作者:俊达 proxysql作为一个程序,本身也可能出现故障。部署proxysql的服务器也肯能出现故障。高可用架构的一个基本原则是消除单点。 可以在多个节点上部署proxysql,在proxysql之前再加一层负载均衡(如使用LVS或其他技术&#x…

Ubuntu 22.04.4 LTS (linux) 安装certbot 免费ssl证书申请 letsencrypt

1 安装certbot sudo apt update sudo apt-get install certbot 2 申请letsencrypt证书 sudo certbot certonly --webroot -w 网站目录 -d daloradius.域名.com 3 修改nginx 配置ssl 证书 # 配置服务器证书 ssl_certificate /etc/letsencrypt/live/daloradius.域名.com/f…

Redis的热key解决

1、Redis热Key会带来哪些问题 1、流量集中,达到物理网卡上限。 当某一热点 Key 的请求在某一主机上超过该主机网卡上限时,由于流量的过度集中,会导致服务器中其它服务无法进行。 2、请求过多,缓存分片服务被打垮。 如果热点过于…

AI绘画入门实践|Midjourney 提示词的使用技巧

提示词长短 尽可能做到简洁明了。 提示词很短 MJ 出图的随机性更高,创造的内容更有想象力,更适合创意发散的图像生成。 a dog 提示词很长 MJ 出图会更加精准,但描述太过详细,有可能出现AI理解不到位的情况。 越到后面的提示词&…

17-8 向量数据库之野望8 - 7 个主流向量数据库

​​​​​​ 在快速发展的人工智能 (AI)、机器学习 (ML) 和数据工程领域,对高效数据存储和检索系统的需求至关重要。矢量数据库已成为管理这些技术通常依赖的复杂高维数据的关键解决方案。在这里,我们探讨了每个 AI/ML/数据工程师都应该熟悉的七个矢量数据库,重点介绍了它们…

智能物流锁控如何重塑货运物流货物追踪与监控

一、物流智能锁控行业现状分析 1.1 传统锁控系统局限性 安全性不足:机械锁容易被撬开或钥匙被复制,导致货物在运输过程中面临被盗风险。据统计,每年因货物丢失或损坏导致的经济损失高达数十亿美元。 无法实时追踪:传统锁控系统…

Linux下Qt程序打包

文章目录 一、前言二、linuxdeployqt下载安装三、Qt环境变量配置四、准备Qt可执行文件五、打包 一、前言 在Windows下进行Qt开发,软件开发好之后可以使用windeployqt进行打包,然后程序就可以移动到其它电脑上运行了 在Linux下同样可以进行打包&#xf…

7.SpringBoot整合Neo4j

1.引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-neo4j</artifactId> </dependency> 说明&#xff1a;这里引入neo4j的版本跟spring框架的版本有关系。需要注意不同的版本在neo…

【java】力扣 买卖股票的最佳时机 动态规划

文章目录 题目链接题目描述思路代码 题目链接 121.买卖股票的最佳时机 题目描述 思路 本题主要用到了动态规划 1.先定义dp数组的含义 先定义一个二维数组dp 然后dp[i][0]来表示第i天持有股票的现金 dp[i][1]代表第i天不持有股票的现金 刚开始的现金为0&#xff0c;当第i天买…

CentOS 7 Web面板的文件管理器说明

在使用CentOS 7 Web Panel&#xff08;CWP7&#xff09;时&#xff0c;偶尔要求在服务器曲面上修改&#xff0c;创建&#xff0c;编辑或删除文件。 最简单&#xff0c;最直接的方式是通过利用CWP7的内置文件管理器。 本文将详细介绍如何启动它&#xff0c;使用它&#xff0c;以…