【zookeeper特点】

文章目录

  • 1. Zookeeper介绍
  • 2、ZooKeeper数据结构

1. Zookeeper介绍

ZooKeeper 是一个开源的分布式协调框架,是Apache Hadoop 的一个子项目,主要用来解决分
布式集群中应用系统的一致性问题。Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性
服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。
官方:https://zookeeper.apache.org/

ZooKeeper本质上是一个分布式的小文件存储系统(Zookeeper=文件系统+监听机制)。提供基
于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理,从而用来维护和
监控存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理、统
一命名服务、分布式配置管理、分布式消息队列、分布式锁、分布式协调等功能。
Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责
存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper
就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。

2、ZooKeeper数据结构

ZooKeeper 数据模型的结构与 Unix 文件系统很类似,整体上可以看作是一棵树,每个节点称做一个
ZNode。

ZooKeeper的数据模型是层次模型,层次模型常见于文件系统。层次模型和key-value模型是两种主流
的数据模型。ZooKeeper使用文件系统模型主要基于以下两点考虑
1文件系统的树形结构便于表达数据之间的层次关系
2文件系统的树形结构便于为不同的应用分配独立的命名空间( namespace )

ZooKeeper的层次模型称作Data Tree,Data Tree的每个节点叫作Znode。不同于文件系统,每个节
点都可以保存数据,每一个 ZNode 默认能够存储 1MB 的数据,每个 ZNode 都可以通过其路径唯一
标识,每个节点都有一个版本(version),版本从0开始计数。

一个znode可以使持久性的,也可以是临时性的:

  1. 持久节点(PERSISTENT): 这样的znode在创建之后即使发生ZooKeeper集群宕机或者client宕机
    也不会丢失。
  2. 临时节点(EPHEMERAL ): client宕机或者client在指定的timeout时间内没有给ZooKeeper集群
    发消息,这样的znode就会消失。
    如果上面两种znode具备顺序性,又有以下两种znode :
  3. 持久顺序节点(PERSISTENT_SEQUENTIAL): znode除了具备持久性znode的特点之外,znode
    的名字具备顺序性。
  4. 临时顺序节点(EPHEMERAL_SEQUENTIAL): znode除了具备临时性znode的特点之外,zorde
    的名字具备顺序性。
    zookeeper主要用到的是以上4种节点。
  5. Container节点 (3.5.3版本新增):Container容器节点,当容器中没有任何子节点,该容器节点
    会被zk定期删除(定时任务默认60s 检查一次)。 和持久节点的区别是 ZK 服务端启动后,会有一个单
    独的线程去扫描,所有的容器节点,当发现容器节点的子节点数量为 0 时,会自动删除该节点。可以
    用于 leader 或者锁的场景中。
  6. TTL节点: 带过期时间节点,默认禁用,需要在zoo.cfg中添加 extendedTypesEnabled=true 开
    启。 注意:TTL不能用于临时节点

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

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

相关文章

java8 reduce操作

什么是 reduce 操作 reduce 操作是一种通用的归约操作,它可以从一个元素序列中生成一个单一的结果,通过反复将一个组合操作应用到序列中的元素上。例如,我们可以使用 reduce 操作来计算一个整数序列的和,或者将一个字符串序列拼接…

EventSource和WebSocket

eventSource(事件源)和WebSocket都是用于实现服务器与客户端之间的实时通信的技术,但它们在一些方面有所不同。 eventSource eventSource是HTML5中的一种技术,它允许服务器向客户端发送单向的、持久的、自动的消息。它基于HTTP协…

新版IDEA中Git的使用(一)

说明:本文介绍如何在新版IDEA中使用Git 创建项目 首先,在GitLab里面创建一个项目(git_demo),克隆到桌面上。 然后在IDEA中创建一个项目,项目路径放在这个Git文件夹里面。 Git界面 当前分支&Commit …

GO语言基础笔记(五):包的介绍

在Go语言中,包(package)是代码组织和重用的基本单位。Go的标准库中包含了许多实用的包,它们提供了从基础数据处理到复杂网络编程等各种功能。下面是一些常用的Go标准库包及其作用的介绍: 目录 1. fmt 2. net/http …

Qt/QML编程学习之心得:在QML中调用fileDialog(十六)

Qt中有一些内置的对话框dialog,比如 在QWidget工程中使用比较容易,比如 #include <QFileDialog>fileName = QFileDialog::getOpenFileName(this, tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)")); 那么在QM…

使用eclipse创建一个java文件并运行

启动 Eclipse 并创建一个新的 Java 项目: 打开 Eclipse。 选择 “File” > “New” > “Java Project”&#xff08;文件 > 新建 > Java 项目&#xff09;。 在弹出的窗口中&#xff0c;为你的项目命名&#xff0c;比如 MyJavaProject。 点击 “Finish”&#xff…

word2003 open word2007+

Win 7 C:\Documents and Settings\Administrator\Application Data\Microsoft\Templates 还是不行&#xff0c;重装office2003吧&#xff0c;再安装转换插件&#xff0c;但是再高版本好像没转换工具

由正规表达式构造DFA,以及DFA的相关化简

目录 1.由正规式到DFA 首先讲如何从正规式到NFA 如何从NFA到DFA 2.DFA的化简 3.DFA和NFA的区别 1.由正规式到DFA 正规式--->NFA---->DFA 首先讲如何从正规式到NFA 转换规则: 例题1&#xff1a;这里圆圈里面的命名是随意的&#xff0c;只要能区别开就可以了 如何…

R语言中的函数28:Reduce(), Filter(), Find(), Map(), Negate(), Position()

文章目录 介绍Reduce()实例 Filter()实例 Find()实例 Map()实例 Negate()实例 Position()实例 介绍 R语言中的Reduce(), Filter(), Find(), Map(), Negate(), Position()是base包中的一些高级函数。随后&#xff0c;很多包也给这些函数提供了更多的扩展。 Reduce() 该函数根…

Leetcode 第 120 场双周赛 Problem C 统计移除递增子数组的数目 II(Java + 双指针 + 前缀和)

题目 统计移除递增子数组的数目 II给你一个下标从 0 开始的 正 整数数组 nums 。如果 nums 的一个子数组满足&#xff1a;移除这个子数组后剩余元素 严格递增 &#xff0c;那么我们称这个子数组为 移除递增 子数组。比方说&#xff0c;[5, 3, 4, 6, 7] 中的 [3, 4] 是一个移除…

助力打造清洁环境,基于YOLOv4开发构建公共场景下垃圾堆放垃圾桶溢出检测识别系统

公共社区环境生活垃圾基本上是我们每个人每天几乎都无法避免的一个问题&#xff0c;公共环境下垃圾投放点都会有固定的值班时间&#xff0c;但是考虑到实际扔垃圾的无规律性&#xff0c;往往会出现在无人值守的时段内垃圾堆放垃圾桶溢出等问题&#xff0c;有些容易扩散的垃圾比…

【UML】第12篇 序列图(1/2)——基本概念和构成

目录 一、什么是序列图&#xff08;Sequence Diagram&#xff09; 1.1 定义 1.2 主要用途 1.3 序列图和BPMN的区别和联系 二、序列图的构成 2.1 对象 2.2 生命线 2.3 消息 2.4 激活 序列图&#xff0c;是我个人认为的用处最多的一种图。产品和研发的同学&#xff0c;都…

向量投影:如何将一个向量投影到矩阵的行向量生成子空间?

向量投影&#xff1a;如何将一个向量投影到矩阵的行向量生成子空间&#xff1f; 前言 本问题是在学习Rosen梯度投影优化方法的时候遇到的问题&#xff0c;主要是对于正交投影矩阵(NT(NNT)-1N)的不理解&#xff0c;因此经过查阅资料&#xff0c;学习了关于向量投影的知识&…

【Datawhale x 财务学习笔记】用智谱清言的代码沙盒进行分析

体验网址 智谱清言&#xff1a;https://chatglm.cn/ prompt 帮我分析一下这个excel文件&#xff0c;从财务角度给出利润情况&#xff0c;并给出优化建议体验结果 首先&#xff0c;我将查看上传的Excel文件的内容&#xff0c;以便了解其结构和包含的数据。然后&#xff0c;我…

MySQL8主主搭建

-- mysql8 主主搭建 mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz 主1 &#xff1a; 192.168.2.160 主2 &#xff1a; 192.168.2.161 --解压mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz为mysql8 -- 初始化mysql8 &#xff08;略&#xff09; -- 参数192.168.2.160 [root…

相机内参标定理论篇------张正友标定法

一、为什么做相机标定&#xff1f; 标定是为了得到相机坐标系下的点和图像像素点的映射关系&#xff0c;为摄影几何、计算机视觉等应用做准备。 二、为什么需要张正友标定法&#xff1f; 张正友标定法使手工标定相机成为可能&#xff0c;使相机标定不再需要精密的设备帮助。…

7种常见的网络安全设备及其功能

网络安全设备在现代网络环境中起着至关重要的作用&#xff0c;帮助保护个人和组织免受恶意攻击。本文将介绍7种常见的网络安全设备&#xff0c;包括防火墙、入侵检测系统、反病毒软件、数据加密设备、虚拟私人网络、安全信息和事件管理系统以及网络访问控制设备&#xff0c;并详…

junit-mock-dubbo

dubbo单元测试分两种情况 Autowired注解是启动上下文环境&#xff0c;使用上下文对象进行测试&#xff0c;适合调试代码 InjectMocks注解是启动上下文环境&#xff0c;使用mock对象替换上下文对象&#xff0c;适合单元测试 BaseTest *** Created by Luohh on 2023/2/10*/ S…

8、优化服务器设置

Mysql配置的工作原理 首先我们应该知道的是Mysql从哪里获取配置信息&#xff1a;命令行参数和配置文件。如果打算长期使用某些配置那么就应该写到全局配置文件&#xff0c;而不是在命令行指定。 语法、作用域和动态性 配置项设置都使用小写&#xff0c;单词之间用下划线或者…

Torchvision中的Transforms的使用

一、transforms结构及用法 查看tansforms.py说明文档&#xff1a; ToTensor类作用是&#xff1a;将一个PIL图片或numpy形式转换成tensor的数据类型 python的用法-》tensor数据类型 通过 transforms.ToTensor去看两个问题 1、transforms该如何使用(python) 2、为什么我们需要Te…