Zookeeper观察者的使用

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: Zookeeper观察者的使用

一、任务描述

本实验任务主要完成基于ubuntu环境的Zookeeper观察者的使用的工作。通过完成本实验任务,要求学生熟练掌握Zookeeper观察者的使用的方法,为后续实验的开展奠定zookeeper平台基础,也为从事大数据平台运维工程师、大数据技术支持工程师等岗位工作奠定夯实的技能基础。


二、任务目标

1、掌握Zookeeper观察者的相关特性


三、任务环境

Ubuntu(三台节点:mater:192.168.0.3,slave1:192.168.0.2,slave2:192.168.0.4)、Zookeeper3.4.5


四、任务分析

Apache Zookeeper 由 Apache Hadoop 的 Zookeeper 子项目发展而来,现已经成为 Apache 的顶级项目,它是一个开放源码的分布式应用程序协调服务,是Google Chubby的一个开源实现。它是一个为分布式应用提供一致性服务的组件,提供的功能包括:配置管理,名字服务,提供分布式同步、队列管理、集群管理等。


学会Zookeeper观察者的使用。

五、 任务实施

步骤1、启动Zookeeper集群

分别在三台节点下进入/simple/zookeeper/conf使用命令【vi zoo.cfg】进行zoo.cfg配置文件修改,设置集群配置参数,添加集群配置。如图1所示。

43b81fd3c2e54200ab07952a809fd795.jpg



图1 配置zoo.cfg文件

 分别在三台节点的zookeeper/目录下新建zk_data文件夹,并在此zk_data/目录下新建myid文件。如图2所示。

af6a8e2ecff54359b40c0065d65755c8.png



图2 创建myid文件

 在主节点zookeeper文件夹zk_data/下,对myid文件进行编译【echo 1 >> myid】,注意,myid的值要与zoo.cfg中的server.1的值对应,以及对应ip。如图3所示。

9e47ede7d939434a98d5990ce499e583.png


图3 配置主节点myid文件

 相同的步骤在第二个节点,为myid文件赋值2。如图4所示。


22f05280dc2e4d669ccf6db911886762.png


图4 配置slave1节点myid文件

 相同的步骤在第三个节点,为myid文件赋值3。如图5所示。


3ed2acf0f84c49c0b353051dc1d5ec80.png


图5 配置myid文件3


分别进入三个节点到zookeeper bin文件下,通过命令【./zkServer.sh start】来启动服务。如图6-8所示。


56884938367b4ab6a79584f0e14a34fa.png


图6 启动Zookeeper集群

5b8b3877a6054d7a8150dc24e5b159a0.png



图7 启动Zookeeper集群


a0d926b5d2914a1a89824939e0cac0fc.png


图8 启动Zookeeper集群

 在三台节点上利用【./zkServer.sh status】查看Zookeeper节点状态。如图9-11所示。


988a0446fcb943b59760d0eab3f6c3fd.png


图9 master查看Zookeeper节点状态


a5d92a8fcbf44f0e81efc3d539a81386.png


图10 slave1查看Zookeeper节点状态


a408a63986644afea7ac865d5fc94eca.png


图11 slave2查看Zookeeper节点状态


步骤2、Zookeeper观察者模式

本地进入zookeeper bin文件下使用命令【./zkCli.sh】连接本地服务端。如图12所示。


1407c43fb3904637891498e55fd0ebaf.png


图12 本地连接服务端

 在本地客户端,使用命令【ls / watch】查看根目录下有多少节点并且在观察者模式下。如图13所示。


16e818a8fd144d9ea1fabf13c0112322.png


图13 查看根目录节点

 在slave1客户端,使用命令【create /node 123 】创建一个新节点。如图14所示。


fdaca6a9ac4d42cf8226657430ec0823.png


图14 创建新节点

 然后我们在本地客户端可以看到,在观察者模式下监视到了根目录下节点发生变化。如图15所示。


099bfd0c0dc94b52b467f80ac9fbff4c.png


图15 监视日志

 由于观察者模式特性所致,注册一次只能用一次,也就是命令使用一次,只监听一次,监听到了就打印内容,打印结束就退出了监听。所以根目录下再次变化不会监听到,在slave1客户端使用命令【create /node2 123 】再次新建一个节点,并在本地客户端查看监听日志无变化。如图16-17所示。


8700c749babe4bf9a7f6af98331f2a3d.png


图16 再次创建节点

1e3bd452b0dc407c9727ffc01b5b6442.png



图17 再次查看监听日志

 连接本地服务端之后,使用命令【-help 】查看所有可使用watch操作的命令,可以触发watcher的命令包括create,delete,set。如图18所示。


18aea993a5ff403fadf6a573e03f7e8a.png


图18 查看可注册watcher命令


♥ 知识链接

Watcher是Zookeeper用来实现distribute lock, distribute configure, distribute queue等应用的主要手段。要监控data_tree上的任何节点的变化(节点本身的增加,删除,数据修改,以及孩子节点的变化)都可以在获取该数据时注册一个Watcher。


♥ 温馨提示

一旦该节点数据变化,Follower会发送一个notification response,client收到notification响应,则会查找对应的Watcher并回调他们。

6a8d97a51ea24e918641b9a7f46bbd1f.png

相关文章
|
存储 缓存 安全
Nacos 安全零信任实践
本文将介绍如何基于安全零信任的理念来保证 Nacos 的数据安全。
13429 113
|
2月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2025 年 9 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。
432 142
|
3月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2025 年 8 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。
432 152
|
7月前
|
文字识别 算法 小程序
【项目总结】快瞳医疗化验单的OCR识别
快瞳科技通过图像识别技术,成功解决了医疗化验单OCR识别难题。项目要求精准识别表格内容,尤其是化验数值和名称,准确率达85%以上。针对化验单来源多样、干扰因素多的问题,团队采用智能文档抽取模型、opencv技术(如霍夫变换)进行图片扶正与裁剪,优化识别精度。最终,项目不仅达到药企要求,还实现超越,为医疗行业智能化转型提供了高性价比解决方案,助力快瞳科技在医疗信息化领域树立良好口碑。
|
5月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2025 年 5 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
网络协议 Java 测试技术
配置中心原理和选型:Disconf、Apollo、Spring Cloud Config 和 Nacos
学完注册中心,再看配置中心这块,感觉简单很多,因为很多知识原理是相辅相成的
8384 0
配置中心原理和选型:Disconf、Apollo、Spring Cloud Config 和 Nacos
|
存储 canal Kubernetes
在K8S中,什么是CNI?平时K8s集群常用什么网络插件?
在K8S中,什么是CNI?平时K8s集群常用什么网络插件?
|
负载均衡 网络协议 安全
DPDK用户态协议栈-KNI
DPDK用户态协议栈-KNI
|
消息中间件 RocketMQ
RocketMQ - 消费者Rebalance机制
RocketMQ - 消费者Rebalance机制
299 0
|
存储 JSON 安全
一文带你了解cookie、session、token区别
【4月更文挑战第10天】
903 3
一文带你了解cookie、session、token区别