zookeeper快速入门——简介

zookeeper教程:入门篇 在分布式系统中,注册中心充当着重要角色,是服务发现、客户端负载均衡中不可缺少的一员。注册中心除了能够实现基本的功能外,它的稳定性、可用性和健壮性对整个分布式系统的流畅运行影响重大。dubbo作为国内一款主流的分布式系统,支持的注册中心有zookeeper、nacos和redis等第三方中间件。... 阅读详情

        在几十年前,一个独立的计算机上往往部署着一套完整的应用系统。当时因为网络稳定性及速度的限制,将相关联的服务部署在一台机器上,让它们使用系统机制通信——比如管道,文件等,往往是最稳定和最高效的。然而随着网络技术的发展,特别是“云计算”和“大数据”的盛行,我们越来越多的谈到“分布式系统”——建立在网络上的软件系统。这样部署在不同机器上的关联服务就依赖于网络以及它们自定义的“协议”和“机制”来构建出更加健壮和系统。之前在单机时代,“机制”是受限于操作系统;而网络时代,“机制”将变得更加自由——不同厂商可以定义自己的“机制”以让分布式系统运转起来。(转载请指明出于breaksoftware的csdn博客)

        我们先闭眼冥想下:如果我们去构建分布式系统,需要考虑些什么问题?

  1. 网络通信协议。这个难度相对低些,我们忽略。
  2. 异常处理方案。这个就非常复杂了,异常有来自网络的,有来自系统的,有来自用户错误的使用……
  3. 分布式系统维护方案。如果系统内部发生机器增删行为,怎么处理?如果某台机器变得不稳定了,怎么办?……
  4. CAP。除了上述,我们还会遇到CAP定律(https://en.wikipedia.org/wiki/CAP_theorem):一致性(Consistency),可用性(Availability)和分区容错性(Partition Tolerance)最多只能同时满足两个。

        简单的说,就是在一个分布式系统中,如果发生网络故障,我们无法同时满足强一致性和可用性:

  • 如果要满足强一致性。请求落在故障机器上时,要一直等待该机器和其他机器同步完最新数据后才能返回。这就牺牲了可用性。
  • 如果要满足可用性。请求落在故障机器上后立即返回该机器上的数据,但是其数据可能不是最新的。这就牺牲了强一致性。

        可见设计一套分布式系统还是要面临很多问题,而且我们设计往往会结合自身业务特征,从而增加了重用的难度。如果每个公司都设计出自己的一套,其场景就像动物园里的动物:琳琅满目。虽然这对看客来说是件好事,但是增加动物园的管理负担——比如喂养老虎的饲养员可能不会喂养兔子,需要雇佣更多的员工或者培训现有的员工。这个时候,一个超级饲养员出现了——zookeeper——动物园(zoo)饲养员(keeper)。

        zookeeper设计了一套通用“机制”,提供了少量简单的API,可以让我们便捷的构建分布式协作系统。依然以动物饲养为例,一个饲养员如果是要给兔子去做饭,就可以用zookeeper提供的切割机去切草——多切几次变得比较细;他要是去给老虎做饭,还可以使用zookeeper提供的切割机去切肉——只切一次让老虎可以大口吃肉。

        zookeeper为什么大受欢迎?我觉得除了方案具有通用性外,还和其设计特点有关——将复杂的问题简单化,把抽象的问题实例化。

        zookeeper并没有让各种信息逻辑糅杂在一个服务中。设想下,如果我们将业务逻辑、分布式系统维护逻辑都放在下面一台机器上,则要求每台机器互联,而且一旦发生某台机器断网,其他机器都将要处理这样的异常。这样看似服务部署变得简单,但是会导致服务内部比较杂乱。

        zookeeper则采用“分角色”的方案。在一个经典的zookeeper系统中,业务代码只在Zookeeper Client中,这样开发者只要专心于Client上的业务逻辑实现就行了,而分布式系统中大部分异常可以交由zookeeper提供的Zookeeper Server服务去解决。

        那么Client和Server间交互的是什么信息呢? 我们称这样的信息叫做“元信息”。元信息存在于Server上,而Client端通过网络向Server端进行读写,从而达到“分布式协同”的功能。于是元信息的设计关系了整个系统的复杂程度。

        zookeeper设计的元信息结构和我们日常使用的文件目录系统很像。这样我们在遇到“分布式协同难题”时,可对照着“文件目录系统”这样“老知识”去梳理和解决,这无疑大大降低了理解的难度。

        不同的Client可以同时读写同一个节点信息。Zookeeper Server可以保证信息要么被全部写入,要么写失败。而信息读取方,也只能一次性读到全部数据,而不可以读取部分数据。所以这种类似“原子性”的特性,可以让Client设计者不用去关心脏数据的问题。

        Client还可以向Server端注册对节点变动的监视。这样就免除了Client端采用轮训这种低效的模式。这和操作系统提供的监控文件变动功能也很像。当然Zookeeper设计的这套结构自然有自己的特点,比如临时节点、有序节点、节点版本等,这些我们在之后的章节会介绍。

        跳出这些微观的设计,我们再看下基于zookeeper的分布式系统整体结构,发现Zookeeper Server之间的并非相互连接的。如果我们让不同Server之间相互连接,会使得每个Server的设计变得非常复杂,因为它要兼顾到每个和其他Server的连接信息。

        zookeeper做了一个这样的设计:选举“领导”(leader)。这就像我们选举领导一样,一个集群里有选举权的员工可以相互交流推选出一个领导,落选的自然成为“追随者”(follower)。被推选为“领导”的服务负责维护各个Zookeeper Server的一致性和可用性。比如一个连接到“追随者”的Client提交了一个修改信息的请求,“追随者”会将“修改”提交给“领导”,“领导”要将这个修改同步给其他“追随者”。这样就达到整个系统的信息的一致性。为了让“领导”可以专心做自己的事,所以不太建议Client端直接连接到Leader服务。

        在大部分场景下,只有“领导”和“追随者”是足够的。但是如果这个集群的需要承载比较大的请求量,我们就需要增加机器,也就是增加“追随者”。这样虽然解决了问题,但是会带来另外一个问题——太多的“追随者”需要更多的时间去选举“领导”,而且这个耗时会导致系统一段时间内部分功能不可用,最最关键的是这个时耗可能很长。于是我们就剥夺了一些“追随者”的选举权,让它们成为“观察员”。这样在Leader失效时,只有少部分Follower进行投票选举,从而降低了系统不可用的时间。

zookeeper快速入门 ZooKeeper 是 Apache 软件基金会的一个软件项目,是一个树形目录服务。Zookeeper翻译过来就是动物管理员,他还是用来管Hadoop(大象)、Hive(蜜蜂)、Pig(小猪)的管理员。简称zk。Zookeeper是一个分布式的、开源的分布式应用程序的协调服务。Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。zookeeper 提供的名称空 阅读详情

相关推荐

Zookeeper免安装快速入门指南

Zookeeper是一个开源的分布式协调服务,它主要用来维护配置信息、命名空间、提供分布式同步以及提供组服务。Zookeeper的服务可以理解为一个管理分布式环境中的共享数据的数据模型和一个简单的操作这个数据模型的API。选择合适的Zookeeper客户端工具对于有效管理和使用Zookeeper集群至关重要。以下是目前较为流行的几款Zookeeper客户端工具::这是Apache官方提供的一个简单的图形界面客户端,适合进行Zookeeper节点数据的查看和修改。

weixin_42611310的博客 716

Zookeeper简单使用

Zookeeper 1)初识 Zookeeper 1.1)Zookeeper概念 •Zookeeper 是 Apache Hadoop 项目下的一个子项目,是一个树形目录服务。 •Zookeeper 翻译过来就是 动物园管理员,他是用来管 Hadoop(大象)、Hive(蜜蜂)、Pig(小 猪)的管理员。简称zk •Zookeeper 是一个分布式的、开源的分布式应用程序的协调服务。 •Zookeeper 提供的主要功能包括: •配置管理 •分布式锁 •集群管理 2)ZooKeeper 安装与配置 2.

1663988740 840

SAP采购订单中项目类别B(限制)的控制逻辑

在笔者所在企业中,框架类采购订单中项目类别需要选择B(限制)。今天笔者从比较全面的角度分析了一下这个项目类别B到底可以决定些什么?控制到什么?先从后台SPRO中打开相应的配置菜单。 打开项目类别B之后,可以看到一些配置信息,这里有一点与其它配置不同的地方,即无法新增项目,也无法修改现有项目。这个疑惑今后再去解决吧。当前只研究项目类别B的控制逻辑。 下面就参考上图中的配置分段来分析和测试其控制逻辑, 1、如项目类别配置图,所需材料值为不允许;经测试,如下图在采购订单创建时,不能输入物料编号条目。

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 6032

Zookeeper入门

Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。

weixin_47109902的博客 1514

SAP PP工艺路线Routing保姆级配置指南:从CA01创建到替代/并行顺序实战

本文详细解析SAP PP模块中工艺路线(Routing)的配置与应用,从基础创建(CA01)到高级功能如替代顺序和并行顺序的实战操作。通过真实案例演示,帮助用户掌握SAP PP工艺路线的精细化管理,提升生产流程效率。

weixin_30898555的博客 388

Jmeter压测报告

账户分析压测报告 一、测试内容 本次测试是针对账户分析进行的压力测试,在账户分析查询接口中,只对用户资产查询接口进行压力测试,其中不包含用户签名校验功能。 二、测试方法 本次采用apache的开源测试工具jmeter,采用本地动态拼装请求数据并通过http协议GET方式发送每日盈亏查询请求。并采用1000个用户账号测试访问情况。...

qq_31108731的博客 6624

Zookeeper入门学习

在分布式组件里面,Zookeeper是一个为其他分布式服务提供协调服务的中间件。 服务包含:统一配置管理、统一命名服务、分布式锁、集群管理、分布式队列、数据发布订阅

weixin_44261754的博客 2026

YOLOv11改进策略【卷积层】| ICCV-2023 LSK大核选择模块 包含二次独家创新

LSK module是。

Limiiiing的博客 1380

Zookeeper快速入门(Zookeeper概述、安装、集群安装、选举机制、命令行操作、节点类型、监听器原理)

Zookeeper快速入门(Zookeeper概述、安装、集群安装、选举机制客户端操作、节点类型、监听器原理)

星光不问赶路人,岁月不负有心人 2929

基于 YOLOv26 的金属表面缺陷检测系统:智能视觉质检方案

摘要: 基于YOLOv26的金属表面缺陷检测系统采用深度学习技术,实现对划痕、裂纹、腐蚀等8类常见缺陷的自动化检测。系统通过数据增强预处理和YOLOv26模型的高精度识别能力,具备多类别分类、实时推理和强鲁棒性特点,适用于不同金属材质与光照条件。架构包含数据采集、预处理、YOLOv26检测和后处理模块,代码实现采用PyTorch框架,支持训练数据增强与标准化处理,为工业质检提供高效智能解决方案。

一键难忘的博客 588

Unity 之jenkins自动打包

1.Jenkins 是什么? jenkins官方网址:https://www.jenkins.io/zh/ Jenkins是一款开源 CI&CD(持续集成&持续部署) 软件,用于自动化各种任务,包括构建、测试和部署软件。 简易安装:Jenkins 是一个基于 Java 的独立程序,可以立即运行,包含 Windows、Mac OS X 和其他类 Unix 操作系统。Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。 插件扩展:通过更新中心中的

TxNet 2132

【Dubbo】Dubbo简介,Zookeeper简介,Dubbo快速入门以及相关配置说明

【Dubbo】Dubbo简介,Zookeeper简介,Dubbo快速入门以及相关配置说明1. 软件架构的演变过程1.1 单体架构1.2 垂直架构1.3 SOA架构1.4 微服务架构2. Apache Dubbo概述2.1 Dubbo简介2.2 Dubbo架构3. 服务注册中心Zookeeper3.1 Zookeeper介绍3.2 安装Zookeeper3.3 启动、停止Zookeeper4. Dubbo快速入门4.1 服务提供方4.2 服务消费方开发5. Dubbo管理控制中心6. Dubbo相关配置说明6

来日浅谈的博客 345

华为OD机试真题 新系统【小花获胜的奶茶】

华为OD机试真题 新系统【小花获胜的奶茶】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【小花获胜的奶茶】多语言题解。

qq_45776114的博客 382

Zookeeper简介/快速入门——特别详细

ZooKeeper是一个集中的服务,用于维护配置信息、命名、提供分布式同步和提供组服务。所有这些类型的服务都以某种形式被分布式应用程序使用。每次它们被实现时,都会有大量的工作来修复不可避免的错误和竞争条件。由于实现这些服务的困难,应用程序最初通常会略过这些服务,这使得它们在出现更改时变得脆弱,并且难以管理。即使正确地执行了这些服务,在部署应用程序时,这些服务的不同实现也会导致管理复杂性 ...

qq_39368007的博客 293

多标签图像分类:标签依赖关系建模的最新论文解读与实战应用

多标签图像分类:标签依赖关系建模的最新论文解读与实战应用 ,人工智能,计算机视觉,大模型,AI,本文解读了最新相关论文,包括基于图神经网络(GCN)的ML-GCN方法,通过构建标签相关矩阵建模依赖关系;区域潜在语义依赖的RLSD模型,定位关键区域并利用RNN建模语义依赖;以及语义图表示学习的SSGRL框架,结合语义解耦与交互模块。通过实战应用,展示了基于PyTorch的ML-GCN模型实现,包括图像特征提取、标签依赖建模及训练评估流程,为多标签图像分类提供了有效解决方案。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 18万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Zookeeper快速入门之分布式锁简介(一)

为什么需要分布式锁 当一个成员变量有可能同时(并发)被多个服务或者多个线程同时访问,导致最终数据不一致。 例如库存只有1件商品,三个用户通过三台订单服务同时下单成功,导致库存错误。 分布式锁应具备哪些条件 分布式环境下,一个方法在同一时间只能被同一台机器的同一线程执行。 高可用、高性能的获取锁、释放锁 具备锁失效机制,防止死锁 具备非阻塞锁特性 Zookeeper实现原理 利用Zookeeper的顺序临时节点,实现分布式锁和等待队列,Zookeeper是为了解决分布式锁而诞生。 ...

keep coding 216

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

zookeeper介绍(5)快速入门教程

1. Zookeeper 前言 由于之前总结的zk相对项目实战化,导致有人不好理解,特此准备zk的快速入门教程,仅供大家学习参考 1.1 ZK简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、...

java旅程 96

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

《Apache Zookeeper 官方文档》-1简介

欢迎光临Zookeeper Apache Zookeeper 是一个致力于开发和管理开源服务器,并且能实现高可靠性的分布式协调框架。 Apache Zookeeper是什么 Zookeeper是一个集中式的服务,包括管理配置信息,命名服务,提供分布式的同步,以及提供分组服务等。所有这些类型的服务都在分布式应用中以不同形式在使用。 每次去实现这些服务的时...

weixin_33753845的博客 140

zookeeper快速入门一:zookeeper安装与启动

本文是《zookeeper你想要的全都有系列》之快速入门中的第一篇,欢迎大家观看与指出不足。 写在前面: 不影响教程,笔者安装zookeeper用的是WSL(windows下的linux子系统),当然你想直接在windows上用zookeeper也是可以的。 如果你也想用wsl,可以参考这篇文章Windows10安装Linux系统(WSL) 目录 一、zookeeper下载 二、安装zookeeper 三、linux下启动zookeeper 四、windows下启动zookeeper 进入

马不腾的博客 4万+

【ZooKeeper快速入门】 —— 每天一点小知识

🐬ZooKeeper是一个分布式协调服务,可以用于构建可靠的分布式系统。它提供了一组简单而强大的API,用于实现分布式应用程序的一致性和可靠性。

仰望天空,妳我亦是行人. 1273

快速入门Zookeeper

结果2号服务器启动后依然是跟随者(从服务器),3号服务器依然是领导者(主服务器),没有撼动3号服务器的领导地位。通过其高性能和可靠的特性,ZooKeeper能够确保在复杂的分布式环境中,各个节点和服务之间的协调和通信得以顺利进行。由此得出结论,3个节点的集群,2个从服务器都挂掉,主服务器也无法运行。(2)我们再把1号服务器(从服务器)也停掉,查看2号(主服务器)的状态,发现已经停止运行了。(4)我们把3号服务器也启动起来,把2号服务器停掉,停掉后观察1号和3号的状态。,扮演着分布式系统中至关重要的角色。

卷心菜是俺的博客 1832

Zookeeper之快速入门

合适想要快速上手zookeeper的读者。

梁诗傑的博客 1692

Zookeeper快速入门

Zookeeper快速入门

写代码的渣渣苏 2567

python 操作 zookeeper 快速入门

python 操作 zookeeper 快速入门 文章目录python 操作 zookeeper 快速入门什么是zookeeperpython 操作 zk 快速入门zk节点创建节点查询节点修改节点删除节点 什么是zookeeper 什么是zookeeper : 这篇zookeeper讲的还满清楚的 python 操作 zk 快速入门 今年开始接触第五门开发语言了, 以前总听说python 效率低...

靑い空゛ 1823
上一篇: 浅析GPU计算——cuda编程
下一篇: zookeeper快速入门——部署
breaksoftware
breaksoftware 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄20年 6901粉丝 724原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

breaksoftware

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值