9.0 Zookeeper 节点特性

本章节介绍一下 zookeeper 的节点特性和简单使用场景,正是由于这些节点特性的存在使 zookeeper 开发出不同的场景应用。

1、同一级节点 key 名称是唯一的

实例:

$ ls /
$ create /runoob 2

已存在 /runoob 节点,再次创建会提示已经存在。

2、创建节点时,必须要带上全路径

实例:

$ ls /runoob
$ create /runoob/child 0
$ create /runoob/child/ch01 0

3、session 关闭,临时节点清除

实例:

$ ls /runoob
$ create -e /runoob/echild 0

同时终端二查看该节点:

$ ls /runoob

ctrl+c 关闭终端一连接后,查询终端二 /runoob/echild 节点消失。

$ ls /runoob

4、自动创建顺序节点

实例:

$ create -s -e /runoob 0

5、watch 机制,监听节点变化

事件监听机制类似于观察者模式,watch 流程是客户端向服务端某个节点路径上注册一个 watcher,同时客户端也会存储特定的 watcher,当节点数据或子节点发生变化时,服务端通知客户端,客户端进行回调处理。特别注意:监听事件被单次触发后,事件就失效了。

提示:参考常用命令章节 get 命令监听 watch 使用,后面章节将详细介绍 watch 实现原理。

6、delete 命令只能一层一层删除

实例:

$ ls /
$ delete /runoob

提示:新版本可以通过 deleteall 命令递归删除。

有了上述众多节点特性,使得 zookeeper 能开发不出不同的经典应用场景,比如:

  • 1. 数据发布/订阅
  • 2. 负载均衡
  • 3. 分布式协调/通知
  • 4. 集群管理
  • 5. 集群管理
  • 6. master 管理
  • 7. 分布式锁
  • 8. 分布式队列


  • 希望你也学会了,更多编程源码模板请来二当家的素材网:https://www.erdangjiade.com

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

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

相关文章

缓存异常与一致性

缓存异常: 缓存穿透:请求缓存和数据库都不存在的数据,每次都要查数据库,缓存好像没有起到拦截流量作用。 采用布隆过滤器过滤一定不存在key请求、key逻辑校验,不存在key请求设置缓存key-null布隆过滤器采用多个hash函数…

MySQL:从基础到实践(简单操作实例)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 下载前言一、MySQL是什么?二、使用步骤1.引入库2.读入数据 提交事务查询数据获取查询结果总结 下载 点击下载提取码888999 前言 在现代信息技术的世界…

Java基于微信小程序的医院挂号系统

文章目录 1 简介2 技术栈3 系统目标3.2 系统功能需求分析3.2.1 功能需求分析 4 系统模块设计4.1 数据库模块设计 5 系统的实现5.1 微信小程序个人中心5.2 科**室内容查看的实现**5.3 预约挂号的实现5.4 后台管理界面实现5.5 医生预约管理5.6 医生信息管理 参考文献7 推荐阅读8 …

【C++】类和对象4:日期类的实现(成员函数+运算符重载)

前言 之前我们已经学习了四个默认成员函数(构造、析构、拷贝构造、运算符重载) 今天我们就来尝试用已经学到的知识进行日期类的完整实现 提示: 依然是分成三个文件来写 只是在讲解的时候就不区分文件了 完整的代码在文章最后 并且之前文章中…

【Git教程】(一)基本概念 ——工作流、分布式版本控制、版本库 ~

Git教程 基本概念 1️⃣ 为什么要用 Git2️⃣ 为什么要用工作流3️⃣ 分布式版本控制4️⃣ 版本库5️⃣ 简单的分支创建与合并🌾 总结 在本章中,将介绍一个分布式版本控制系统的设计思路,以及它与集中式版本控制系统的不同之处。除此之外&am…

未来之梦:畅想人工智能操控手机的辉煌时代

引言: 在当今数字化快速发展的时代,人工智能技术正日益深入我们的生活。其中,手机作为人们日常生活不可或缺的一部分,其未来将如何受到人工智能技术的影响,引发了广泛的关注和研究。本文将深入探讨人工智能操控手机的…

区块链大解码:深入了解Web3的核心技术

随着技术的迅速发展,Web3正逐渐崭露头角,成为数字时代的引领者。其中,区块链技术作为Web3的核心,扮演着至关重要的角色。本文将深入解码区块链技术,探讨其在Web3时代的关键作用以及未来发展趋势。 1. 区块链基础原理 …

Windows 10 配置 FFmpeg 使用环境

Windows 10 配置 FFmpeg 使用环境 1.下载FFmpeg 的windows办2. 配置环境变量:3.查看是否配置正确 cmd 或者 PowerShell 执行以下命令 1.下载FFmpeg 的windows办 GitHub 地址 :https://github.com/BtbN/FFmpeg-Builds/releases 解压后得到如图: 2. 配置环境变量: 复制路径:…

java SpringBoot2.7整合Elasticsearch(ES)7 进行文档增删查改

首先 我们在 ES中加一个 books 索引 且带有IK分词器的索引 首先 pom.xml导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>applicatio…

CMake编译JSONCPP库

第一、 JSONCPP 是一个开源的 C 库&#xff0c;用于处理 JSON 数据的解析和生成。您可以在 JSONCPP 的官方网站&#xff08;https://github.com/open-source-parsers/jsoncpp&#xff09;上找到该库的源代码和相关文档。 要使用 JSONCPP&#xff0c;您需要按照以下步骤进行操作…

基于A-Star搜索算法的迷宫小游戏的设计

这篇文章是作者人工智能导论课的大作业&#xff0c;发出来供大家学习参考&#xff08;有完整代码&#xff09;。想要论文WORD文件的可以在本文资源处下载&#xff08;可能还在审核&#xff09;。 摘要&#xff1a; 本文章聚焦于基于A-Star搜索算法的迷宫小游戏设计&#xff0c;…

踩坑实录(Second Day)

作为公司的小菜鸟&#xff0c;每天都踩坑应该是一件很正常的事情吧&#xff0c;哈哈哈。今天遇到了比较棘手的问题&#xff0c;以前从来没有遇到过。然后就是在某平台上接的一个 bug 修改的单子&#xff0c;也拿出来和大家分享一下~ 此为第二篇&#xff08;2024 年 02 月 05 日…

【线程】FutureTask vs. CompletableFuture:解锁异步编程的不同层次(1)

在Java的多线程编程中&#xff0c;FutureTask 和 CompletableFuture 是两个关键的工具&#xff0c;分别代表了基础和进阶的异步编程技术。本文将深入介绍这两者的特点、使用方法以及它们之间的巧妙应用、区别以及各自的优缺点。 1. FutureTask&#xff1a;基础异步任务的引路者…

AR特效自研AI算法技术解决方案

在当今这个高速发展的数字化时代&#xff0c;增强现实&#xff08;AR&#xff09;技术已经成为企业创新和市场竞争的重要手段。美摄科技凭借对AI技术的深厚积累&#xff0c;为企业提供了一套创新的AR特效自研AI算法技术解决方案&#xff0c;旨在满足企业在AR领域的多元化需求。…

选择大语言模型:2024 年开源 LLM 入门指南

作者&#xff1a;来自 Elastic Aditya Tripathi 如果说人工智能在 2023 年起飞&#xff0c;这绝对是轻描淡写的说法。数千种新的人工智能工具被推出&#xff0c;人工智能功能被添加到现有的应用程序中&#xff0c;好莱坞因对这项技术的担忧而戛然而止。 甚至还有一个人工智能工…

【Kotlin】自定义Json反序列化

最近在项目中发现之前同事在使用Redis存储对象的时候&#xff0c;给日期字段存了两种不同的日期格式&#xff0c;进而导致查询时反序列化报错&#xff0c;因此写了一个注解配置类来自定义反序列化的方式。 /*** LocalDateTime反序列化&#xff0c;下方的LocalDate同理&#xff…

C++强制类型转换之static_cast

例1&#xff0c;将 double 类型转换为 int 类型 double d 5.5; int i static_cast<int>(d); printf("i %d\n", i);运行结果如下&#xff1a; i 5例2&#xff0c;将 int 类型转换为 double 类型 int a 10; int b 3; double c a / b; double d static…

代码随想录 Leetcode46. 全排列

题目&#xff1a; 代码&#xff08;首刷自解 2024年2月6日&#xff09;&#xff1a; class Solution { private:vector<vector<int>> res;vector<int> path; public:void backtracking(vector<int>& nums, int depth, vector<bool>& us…

golang+selenium自动化+chrome浏览器操作

1,selenium 是自动化测试以及自动化爬取的框架,常用于python开发,今天这里使用golang selenium进行自动化开发,相比python,主要是社区广泛,golang同样也是跟python功能一样,同时go可以支持大并发携程 自动化爬取节省资源,下面我们就直接上代码案例操作 1,首先需要下载谷歌驱动,…

EmoLLM-心理健康大模型

宣传一下自己最近参与的开源 https://github.com/aJupyter/EmoLLM EmoLLM-心理健康大模型 EmoLLM 探索本项目的文档 查看Demo 报告Bug 提出新特性 EmoLLM 是一个能够支持 理解用户-支持用户-帮助用户 心理健康辅导链路的心理健康大模型&#xff0c;由 InternLM2 指令微…