zookeeper基础入门·

目录

一、ZooKeeper简介

二、ZooKeeper的核心特性

1、顺序一致性 

2、原子性

3、单一视图

4、可靠性

5、实时性

三、ZooKeeper的基本概念

四、ZooKeeper的基本应用场景

1.配置中心

2.统一命名服务

3.分布式锁

4.分布式队列

五、ZooKeeper的入门安装与配置

1.下载与解压缩

2.配置环境变量

3.创建配置文件

4.启动ZooKeeper


ZooKeeper基础知识与入门

一、ZooKeeper简介

ZooKeeper是一个开源的分布式协调服务,目前由Apache进行维护。ZooKeeper是Google的Chubby一个开源的实现,也是Hadoop和Hbase的重要组件。其主要功能是为分布式应用提供一致性服务,如配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

二、ZooKeeper的核心特性

1、顺序一致性 

从一个客户端发起的事务请求,最终都会严格按照其发起顺序被应用到ZooKeeper中。

2、原子性

所有事务请求的处理结果在整个集群中所有机器上都是一致的,不存在部分机器应用了该事务,而另一部分没有应用的情况。

3、单一视图

所有客户端看到的服务端数据模型都是一致的。

4、可靠性

一旦服务端成功应用了一个事务,则其引起的改变会一直保留,直到被另外一个事务所更改。

5、实时性

一旦一个事务被成功应用后,ZooKeeper可以保证客户端立即可以读取到这个事务变更后的最新状态的数据。

三、ZooKeeper的基本概念

在ZooKeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据。Znode有两种类型:临时节点(Ephemeral)和持久节点(Persistent)。临时节点在创建该节点的客户端会话结束时会被自动删除,而持久节点则不会。

ZooKeeper还提供了Watcher机制,用于在znode节点上注册一个Watcher监听,当这个znode节点发生变化(数据变更、子节点增减)时,ZooKeeper服务会通知客户端。

四、ZooKeeper的基本应用场景

1.配置中心

ZooKeeper可以用来存储和管理配置信息,例如集群中的机器配置、服务地址配置等。通过ZooKeeper,可以将配置信息统一管理,同时实现动态加载和更新。

2.统一命名服务

ZooKeeper可以用来实现命名服务,例如将集群中的机器名称和IP地址进行映射,或者将服务的唯一标识和实际地址进行映射。这样,客户端可以通过名称或标识来访问服务,而不需要知道服务的实际地址。

3.分布式锁

ZooKeeper可以用来实现分布式锁,通过创建一个特殊的节点,各个节点可以竞争同一个锁,从而保证分布式系统中的一致性。

4.分布式队列

ZooKeeper可以用来实现分布式队列,通过创建一个特殊的节点,各个节点可以加入或离开队列,同时队列中的节点可以按照一定的顺序进行排序。

五、ZooKeeper的入门安装与配置

1.下载与解压缩

从Apache官网下载ZooKeeper的发行包,并解压缩到指定目录。

2.配置环境变量

将ZooKeeper的bin目录添加到系统的PATH环境变量中,以便在全局范围内使用ZooKeeper的命令。

3.创建配置文件

在ZooKeeper的conf目录下,创建zoo.cfg文件,并配置相关的参数,如数据目录、日志目录、客户端连接端口等。

4.启动ZooKeeper

使用zkServer.sh start命令启动ZooKeeper服务。如果一切正常,你将看到ZooKeeper的启动日志,并可以通过jps命令查看到ZooKeeper的进程。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

selenium发展史

Selenium Core 2004 年,Thoughtworks 的工程师 Jason Huggins 正在负责一个 Web 应用的测试工作,由于这个项目需要频繁回归,这导致他不得不每天做着重复且低效的工作。为了解决这个困境,Jason 开发了一个运行在 JavaScript 沙箱中…

Dockerfile中yum install 无法使用的问题

记录一次开发中使用Dockerfile进行centos7容器自定义的时候发现yum install无法使用 1. 查看主机是否能够联网 ping www.baidu.com主机能够联网 2. 查看进行Dockerfile进行打包的时候新容器是否联网 在Dockerfile中添加 RUN ping www.baidu.com 发现无法ping通 解决办法 …

节点电位与电路电压的研究

实验目的: 1. 验证电路中电位与电压的关系; 2. 掌握电路电位图的绘制方法; 3. 学会对简单的电路故障进行分析与排除。 实验内容及步骤: 1. 从“线性电路研究模块”实验板上选取元器件,结合实验箱提供的电源&#xff…

位拆分与运算

描述 题目描述: 现在输入了一个压缩的16位数据,其实际上包含了四个数据[3:0][7:4][11:8][15:12], 现在请按照sel选择输出四个数据的相加结果,并输出valid_out信号(在不输出时候拉低) 0: 不输出且只有此时的输入有…

EasyClick常见拓展函数及应用

十天学会从入门到实战游戏脚本开发教程--EassyClick入门教程:2024 十天学会EasyClick从入门到实战,自动化脚本,游戏脚本开发系列教程_哔哩哔哩_bilibili2024 十天学会EasyClick从入门到实战,自动化脚本,游戏脚本开发系…

Redis-Redis事务

Redis事务 Redis事务简介 Redis事务是一组命令的集合,一个事务中的所有命令都将被序列化,按照一次性、顺序性、排他 性的执行队列系列的命令。Redis单条命令保证原子性,但是事务不保证原子性,且没有回滚。事务中任意命令执行失败…

DBeaver如何csv导入数据

简言之先要创建任务,任务还需要去执行,只有执行之后才是执行真的导入了 那个保存任务真的很误导人啊 1.首先点击你要被导入的表,右键选择导入数据然后选择直接点击下一步,这个地方需要修改格式,否则会乱码 如果你导入的没有标题…

GPT-4o API 全新版本发布:提升性能,增加性价比

5月13日,OpenAI 发布了全新ChatGPT模型 GPT-4o,它在响应速度和多媒体理解上都有显著提升。在这篇文章中,我们将介绍 GPT-4o 的主要特点及其 API 集成方式。 什么是 GPT-4o? GPT-4o 是 OpenAI 于5月13日发布的最新多模态 AI 模型…

职业生涯第一课---“Redis分布式锁优化:确保唯一性与效率“

前言 最近因为刚入职公司开启自己的实习生涯,工作和毕设论文同步进行,导致有段时间没更新博客了,今天来分享一下最近学到的一些知识。 场景介绍 BOSS让我写一些接口,他提出这样一个需求,该接口的参数有多个&#xf…

ubuntu下不生成core dumped

1、先用ulimit -c,如果看到0,说明没有开core dump。 所以我们输入ulimit -c unlimited,打开core dump。 再次用ulimit -c,看到unlimited了,说明core dump打开了。 注意这句ulimit -c unlimited只对当前会话有效。要永…

酷开科技的智能电视操作系统—酷开系统,带来更加舒适的观看体验

酷开科技的智能电视操作系统——酷开系统,通过大数据和人工智能技术的结合,会根据会员的观看历史和收视行为偏好,刻画出“消费者群体画像”,然后将内容进行“人工编辑智能推荐”的方式推送到消费者面前,不仅省去了消费…

在Python中防止某些字段被Pickle序列化

在Python中,如果你想防止某些字段被pickle序列化,可以使用__reduce__()方法来自定义pickle行为。__reduce__()方法允许你返回一个元组,其中包含要在对象被pickle时调用的函数以及传递给该函数的参数。下面就是我遇到的问题以及最终解决方案。…

Verdaccio私服搭建

前言 Verdaccio是一个轻量级的私有npm注册表,由Node.js创建,并且是sinopia1.4.0的衍生版本,与其100%向后兼容。Verdaccio的名称来源于意大利中世纪晚期fresco绘画中流行的一种绿色。 Verdaccio的主要功能是在本地环境中管理和共享npm软件包。…

鸿蒙应用开发之调用C++开发代码库3

接着下来,我们仔细分析C++代码的实现,要理解怎么样把ArkTS类型转换为C++类型,并且返回参数值时,怎么从C++的类型转换为ArkTS类型。 要想在ArkTS调用C++的代码,需要把上面的编译器信息打包到应用程序HAP里,当运行的时候,就可以找到加载的对应的声明信息。 我们从JS调用框…

framework ‘CoreAudioTypes‘ not found

几天前我升级Xcode15之后遇到了这个问题。关于“CoreAudioTypes”的信息完全是误导。在我的例子中,原因是在删除一些旧代码时,我不小心删除了仍然需要的类。然而,在构建时弹出的唯一消息是关于“CoreAudioTypes”——当我恢复丢失的类时&…

基于区块链的Web 3.0关键技术研讨会顺利召开

基于区块链的Web3.0关键技术研讨会 2024年4月23日,由国家区块链技术创新中心主办的“基于区块链的web3.0关键技术研讨会”召开。Web3.0被用来描述一个运行在“区块链”技术之上的“去中心化”的互联网,该网络上的主体掌握自己数据所有权和使用权&#xf…

使用OpenCV GUI清理数据集 | 为目标检测模型创建更好的数据集

点击下方卡片,关注“小白玩转Python”公众号 在深度学习中有几件重要的事情,我认为数据是最关键的。如果没有合适的数据,要取得好的结果是非常困难的。即使你用强大的预训练模型和GPU训练模型,你的模型也可能表现不佳。在本文中&a…

Kotlin核心编程知识点-02-面向对象

文章目录 1.类和构造方法1.1.Kotlin 中的类及接口1.1.1.Kotlin 中的类1.1.2.可带有属性和默认方法的接口 1.2.更简洁地构造类的对象1.2.1.构造方法默认参数1.2.2.init 语句块1.2.3.延迟初始化:by lazy 和 lateinit 1.3.主从构造方法 2.不同的访问控制原则2.1.限制修…

Apifox接口报错401,msg:“未授权”

Apifox接口报错401,msg:“未授权” 报错: 原因:Apifox接口好像两小时token就过期了,得重新获取 一、打开登录接口,找到token 二、打开根目录找到token,将登录的token值拷贝过来,点击保存 三…

Milvus的系统架构

简介 Milvus的构建在许多知名的向量搜索库比如Faiss, HNSW, DiskANN, SCANN等之上的,它针对稠密向量数据集的相似搜索而设计,能支持百万、十亿甚至万亿级别的向量搜索。 Milvus支持数据分片,流式数据插入,动态schema&#xff0c…