分布式协调服务zookeeper知多少

zookeeper简介
由于之前了解一个分布式框架(dubbo)时,其中涉及到zookeeper,因此今天就先来大概的介绍一下zookeeper。zookeeper是一个用来管理大量的主机的分布式协调服务。
(一) 分布式应用程序
分布式应用程序可以通过在它们之间协调以完成特定的任务,快速且有效的方式在多个系统中的网络在给定时间(同时)运行
分布式应用程序有两部分,分别是:服务器和客户端应用程序。如下图所示:

[img]http://dl2.iteye.com/upload/attachment/0126/8430/5bcc9fb0-71e0-35c9-b87e-86b0cf656140.png[/img]

(二) 分布式应用程序的优点
可靠性 可扩展性 透明性
(三) zookeeper提供的服务
命名服务 配置管理 集群管理 节点领导者选举 锁定和同步服务 数据注册表
ZooKeeper基础
(一) ZooKeeper的体系结构
描绘ZooKeeper 的“客户端 - 服务器架构,如下图所示


[img]http://dl2.iteye.com/upload/attachment/0126/8432/cc3cccac-c63e-3279-9640-756bcb5bae12.png[/img]

ZooKeeper 架构的一部分组件如下表中所解释。
1. Client:客户端,发送消息到服务器。
2. Server:服务器,ZooKeeper集成的一个节点,提供所有的服务给客户。
3. 合组:ZooKeeper 服务器组。
4. Leader:它执行自动恢复,如果任何连接的节点的故障的服务器节点。
5. Follower:遵循领导指示服务器节点
(二) 分层命名空间
下图显示了用于内存中表示 ZooKeeper 文件系统的树形结构。 ZooKeeper节点被称为znode。每个znode由一个名称识别,并通过路径(/)序列隔开。

[img]http://dl2.iteye.com/upload/attachment/0126/8434/8d4b8c27-e00b-30ee-86a3-b54adc6a5280.png[/img]

zookeeper名字空间由节点znode构成,其组织方式类似文件系统,其中各个节点相当于目录和文件,通过路径作为唯一标识。与文件系统不同的是,每个节点具有与之对应的数据内容,同时也可以具有子节点。在 ZooKeeper 数据模型中每个 znode 维护一个 stat 结构。 一个统计(stat )只是提供了一个 znode 元数据。 它由版本号、动作控制列表(ACL)、时间戳、数据长度组成。
ZooKeeper组件
同一个zookeeper服务下的server有两种,一种是leader server,另一种是follower server。leader特殊之处在于它有决定权。在zookeeper整个服务下的每台server将复制各个组件。Replicated Database是包含了所有数据的内存数据库
Zookeeper之leader
让我们来分析一下一个领导节点在ZooKeeper集合的选举。考虑集群中有N多的节点。领导人选举的过程如下
所有节点创建一个顺序,znode具有相同路径,/app/leader/guid_。
ZooKeeper 的集合将追加的10位序列号的路径。
对于给定的实例,它在znode创建最小数量的节点成为领导者以及所有其他节点的追随者。
每一个追随者节点监控下一个最小号的znode。

Zookeeper安装配置
(一) 安装Java(略)
(二) ZooKeeper框架的安装
1. 下载并tar开解压(略)
2. 创建配置文件
打开 并编辑conf/zoo.cfg 配置文件,并将以下所有参数设置为开始点。
tickTime = 2000
dataDir = /path/to/zookeeper/data
clientPort = 2181
initLimit = 10
syncLimit = 5
3. 启动ZooKeeper服务器
$ bin/zkServer.sh start
4. 启动 CLI
$ bin/zkCli.sh
5. 停止ZooKeeper服务器
$ bin/zkServer.sh stop
Zookeeper CLI
ZooKeeper 命令行界面(CLI)是用来与 ZooKeeper 集成作开发进行交互的。这是在调试和使用不同的选项时的工作有用。
为了执行ZooKeeper的CLI操作, ZooKeeper服务器首先要启动 (“bin/zkServer.sh start”) , 然后使用 ZooKeeper 客户端 (“bin/zkCli.sh”). 当客户端启动后,可以执行以下操作:(1)创建znodes,(2)获取数据,(3)监视 znode 变化,(4)设置数据,(5)创建 znode 的子 znode,(6)列出一个 znode 的子 znode,(7)检查状态,(8)删除一个 znode
(一) 创建Znodes
create /path /data
(二) 获取数据
get /path
(三) 监视
get /path [watch] 1
(四) 设置数据
set /path /data
(五) 创建子znode
create /parent/path/subnode/path /data
(六) 列出子znode
ls /path
(七) 检查状态
stat /path
(八) 删除Znode
rmr /path

Zookeeper 常用API
ZooKeeper有一个Java和C绑定的官方API。ZooKeeper社区提供了对于大多数语言(.NET,Python等)的非官方API。使用ZooKeeper的API,应用程序可以连接,互动,操作数据,协调,以及从ZooKeeper集成断开。
(一) ZooKeeper的API基础知识
客户端应遵循下面给出带 ZooKeeper 集成一个清晰的交互步骤。
连接到ZooKeeper 。ZooKeeper 集成分配客户端的会话ID。
定期发送心跳到服务器。否则,ZooKeeper 集成过期的会话ID,那么客户端需要重新连接。
获得/设置只要znodes会话ID是活动的。
从 ZooKeeper 集成断开,当所有的任务都完成后。如果客户端处于非活动状态较长时间,那么 ZooKeeper 集成会自动断开客户机。

(二) Java绑定
让我们这一章中理解最重要的ZooKeeper API。ZooKeeper API的中心部分是ZooKeeper 类。它提供了一些选项来连接 ZooKeeper 集成在其构造,有以下几种方法
• connect − 连接到 ZooKeeper 的集成
• create − 创建一个 znode
• exists − 检查znode是否存在及其信息
• getData − 从一个特定的znode获取数据
• setData − 设置数据在特定znode
• getChildren − 得到一个特定 znode 的所有可用子节点
• delete − 得到一个特定的 znode 及其所有子节点
• close − 关闭连接

(三) 连接到 ZooKeeper 集合
ZooKeeper类通过它的构造函数提供了连接功能。构造函数如下:
ZooKeeper(String connectionString, int sessionTimeout, Watcher watcher)

(四) 创建一个Znode
ZooKeeper类提供了一个方法来在集合 ZooKeeper 创建一个新的 znode。创建方法如下:
create(String path, byte[] data, List<ACL> acl, CreateMode createMode)

(五) Exists – 检查一个Znode的存在
exists 方法来检查 znode 的存在。如果指定的 znode 存在它返回一个 znode 元数据。exists 方法如下 –
exists(String path, boolean watcher)

(六) getData 方法
getData方法来获取连接在指定 znode 及其状态的数据。getData方法如下
getData(String path, Watcher watcher, Stat stat)

(七) setData 方法
SetData方法来修改附着在指定 znode 的数据。SetData方法如下 –
setData(String path, byte[] data, int version)

(八) getChildren 方法
getChildren方法来得到一个特定的 znode 所有子节点。getChildren 方法如下 -
getChildren(String path, Watcher watcher)

(九) 删除一个Znode
delete 方法来删除指定 znode。delete方法如下 –
delete(String path, int version)

本文原创首发于Cobub官网博客,作者:何才
如有转载请注明作者和出处!
推荐一款开源私有化部署的移动应用数据统计分析系统Cobub Razor
项目地址:https://github.com/cobub/razor
官网:www.cobub.com
ZooKeeper(分布式协调服务)使用介绍 包含最全MySQL、Redis、Java并发编程等等面试题和答案,用于参考~ 阅读详情

相关推荐

Zookeeper分布式协调服务核心原理

Zookeeper 是一个开源的分布式协调服务,主要用于解决分布式系统中的数据一致性和协调问题。其核心设计目标是提供高性能、高可用且严格有序的分布式一致性服务。

HTTP404_CN的博客 958

zookeeper学习笔记(1)zookeeper简介

一、zookeeper介绍 Q:什么是分布式协调技术 A:分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成”脏数据”的后果。 Q:什么是分布式系统 A:建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个...

yowasa的博客 594

QT播放器插件内嵌浏览器配合流媒体实现国标摄像头网页端播放

基本原理在浏览器⽹页中的指定播放窗口的位置和⼤⼩,实现⼀个内嵌到⽹页中显⽰的播放窗⼝,前端还必须可对这个内嵌播放窗⼝进⾏控制,⽽且播放窗⼝必须跟随浏览器窗⼝的移动和缩放、⽹页滚动、标签页切换、关闭等操作进⾏⾃动联动。播放器可以通过QT实现。这个播放窗⼝同时提供Web Socket的服务端和JSON打包命令的解析执⾏模块,前端就可以通过Web Socket连接后发送JSON打包的控制命令实现控制播放窗⼝。

cameravision的博客 562

分布式协调服务Zookeeper

分布式协调服务Zookeeper

weixin_41423562的博客 384

USRP B210 运行gnuradio时 FPGA固件版本冲突错误解决方法

事情起源于昨天拿到USRP后开始调试,结果整了一个下午都没解决这个问题。 昨天晚上自己思考了一下,觉得还是版本问题。 首先,uhd_find_devices和uhd_usrp_probe均可以正常运行,没有报错,固件正常加载,序列号也可看到。 teray@teray-X550JK:~$ uhd_find_devices [INFO] [UHD] linux; GNU C++ version 7.5...

斯哈研究所 4243

利用gprMax与Matlab实现SFCW雷达信号的高效仿真与优化

本文详细介绍了如何结合gprMax与Matlab实现SFCW雷达信号的高效仿真与优化。通过利用gprMax获取地下场景的冲激响应,并在Matlab中运用卷积与信号处理技术,可大幅提升SFCW雷达系统仿真的效率与灵活性,为探地雷达研究与设计提供强大工具。

book8的博客 706

分布式协调服务-Zookeeper

一:初步认识zookeeper zookeeper是一个开源的分布式协调服务,是由雅虎创建的,基于google chubby。 1,zookeeper是什么: 分布式数据一致性解决方案 2,zookeeper能做什么: 数据的发布/订阅(配置中心:disconf) 、 负载均衡(dubbo利用了zookeeper机制实现负载均衡) 、命名服务、 master选举(kafka、hado...

Danny的博客 667

从仿真曲线到电路状态:用Cadence Virtuoso深度剖析CS放大器各个工作区(以电流源负载为例)

本文通过Cadence Virtuoso平台,深入剖析电流源负载CS放大器在不同工作区的表现,从仿真曲线解读电路状态。详细介绍了如何通过Vout-Vin直流扫描曲线判断MOS管工作区域(截止区、饱和区、线性区),并验证理论与仿真的一致性,提升模拟IC设计调试效率。

weixin_30940783的博客 442

ZooKeeper的内存数据结构DataTree

当前对ZooKeeper的分析文章中,大都针对paxos和FastLeaderElection展开,当然,那是ZooKeeper实现一致性的关键技术,无可厚非,但本文想要另辟蹊径,简要介绍一下ZooKeeper在内存中的数据结构。由DataTree的实现,可以发现,当前系统在设计时,对于内存的考虑已经没有那么重要,可能跟当前内存越做越大有关,处处体现着以空间换时间的思想 ZooKeepe

933

如何通过常规测井曲线识别砂岩、泥岩、碳酸盐岩和煤层

常规测井曲线通过不同岩性的物理性质差异识别砂岩、泥岩、碳酸盐岩和煤层。砂岩表现为低自然伽马(GR)、中等密度(RHOB)和声波时差(DT);泥岩以高GR、高中子(NPHI)和高DT为特征;碳酸盐岩显示低GR、高RHOB和低DT;煤层则具有极低RHOB、极高NPHI和DT的独特组合。综合GR与三孔隙度曲线(RHOB、NPHI、DT)可有效区分岩性,其中密度测井对煤层识别最可靠。电阻率(RT)曲线辅助判断流体性质,但需结合其他参数综合分析。

love code, love life. 2593

声音源定位:利用YOLO与麦克风阵列定位声音来源YOLOv5、YOLOv8、YOLOv10

YOLO(You Only Look Once)是一个用于目标检测的深度学习模型。YOLO的最大特点是其通过一次前向传播即可完成多个目标的检测,速度和精度相对其他目标检测算法具有显著优势。YOLO模型的版本不断更新,从YOLOv1到YOLOv10,算法精度和速度都有了显著的提升。声音源定位是利用多个麦克风阵列收集的声音信号,通过算法计算声音源的位置。声音源定位的关键在于准确估计每个麦克风的声音到达时间,从而确定声音源的空间坐标。基于时延估计(TDOA)

YOLO 673

分布式协调服务ZooKeeper的典型应用

Zookeeper典型应用 参考官方文档: http://zookeeper.apache.org/doc/current/recipes.html Out of the Box Applications: Name Service, Configuration, Group Membership Barriers Double Barriers

zollty的专栏 1036

Python爬虫实战:如何抓取旅游论坛上的帖子、旅行攻略和评论内容

无论是知名的旅游网站,还是地方性的旅游讨论区,用户发布的旅行贴文、攻略和评论往往包含着大量的宝贵信息。本文将详细介绍如何使用Python编写一个爬虫,抓取旅游论坛上的帖子、旅行攻略和评论内容,涵盖从获取页面内容、解析数据到处理动态加载等各个方面的技术。从基本的请求和网页解析,到动态加载页面的处理,再到数据存储和反爬虫技巧,我们详细讲解了抓取旅游论坛数据的全过程。通过本文的介绍,你可以将所学的爬虫技术应用到其他类似的网站抓取任务中,为后续的数据分析、机器学习等任务提供丰富的数据源。在这种情况下,传统的。

2201_76125261的博客 1557

分布式协调服务zookeeper 知多少

zookeeper简介 由于之前了解一个分布式框架(dubbo)时,其中涉及到zookeeper,因此今天就先来大概的介绍一下zookeeper。zookeeper是一个用来管理大量的主机的分布式协调服务。 (一) 分布式应用程序 分布式应用程序可以通过在它们之间协调以完成特定的任务,快速且有效的方式在多个系统中的网络在给定时间(同时)运行 分布式应用程序有两部分,分别是:服务

kwame211的博客 406

Android性能分析深度指南:Perfetto工具全面解析

本文深入探讨Android性能优化工具Perfetto的应用与实践。作为Google推出的新一代追踪系统,Perfetto整合了CPU调度、内存分配、电池状态等多维度分析功能,通过高性能数据处理和可视化界面帮助开发者定位性能瓶颈。文章系统介绍了Perfetto的架构原理、配置方法和核心功能,包括CPU性能分析、内存泄漏检测等关键技术。通过电商应用卡顿优化的实战案例,展示了如何利用数学建模(如帧时间公式$T_{\text{render}}\leq16.67\text{ms}$)指导性能调优。

郑伟强dev的专栏 144

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

分布式协调服务-ZooKeeper

What is ZooKeeper?

!!! 1973

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Zookeeper分布式协调服务全解析

Zookeeper是一个分布式协调服务框架,用于解决集群中的一致性和数据管理问题。它基于观察者模式,提供文件系统和通知机制,确保数据一致性、顺序性和原子性。集群安装需要至少3台同步时钟的服务器,配置包括修改zoo.cfg文件、设置myid值、分发安装包和配置环境变量。启动后,集群会选举一个Leader和多个Follower。关闭时应按顺序操作:先关闭Zookeeper集群,再关闭虚拟机。Zookeeper广泛应用于Hadoop高可用等分布式场景。

渣渣盟的博客 3874

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ZooKeeper架构深度解析:分布式协调服务的核心设计与实现

ZooKeeper:分布式协调服务的核心架构解析 摘要 ZooKeeper是Apache开源的高性能分布式协调服务,为分布式系统提供一致性、可靠性和高效性的基础支持。其核心架构设计包括: 层次化命名空间:采用类似文件系统的树形结构(ZNode),支持多种节点类型(持久、临时、顺序节点) 强一致性保证:基于ZAB协议实现原子广播,确保数据顺序一致性和可靠性 高可用集群:Leader-Follower架构,支持故障自动恢复和数据同步 事件监听机制:Watcher机制实现高效的节点变更通知 丰富的应用场景:广泛用

言不信者行不果,行不敏者言多滞. 3012

Zookeeper分布式协调服务

本文简述了,什么是zookeeper,zookeeper提供的文件系统和通知机制,作用,特性,安装,znode节点的存储格式以及什么是分布式系统,分布式系统存在的问题和解决方法

m0_62689947的博客 1620

【分布式技术】中间件-分布式协调服务zookeeper

ZooKeeper 是一个分布式协调服务,它为分布式应用程序提供了一套完整的协调服务功能,包括命名服务、状态同步、集群管理、配置维护以及分布式锁等功能。ZooKeeper 的设计目标是简化分布式应用程序的开发工作,使得开发者不需要从头开始实现这些复杂的协调机制。ZooKeeper 是一个非常有用的工具,特别是在构建复杂的分布式系统时。它通过提供一系列协调服务来简化开发者的任务,使得开发者可以专注于业务逻辑而不是底层的协调机制。不过,使用ZooKeeper也需要考虑它的性能和可靠性,尤其是在大规模集群环境中。

wendao76的专栏 2005

ZooKeeper--分布式协调服务

现在我们大多数应用都是采用的是分布式开发的应用,搭建到不同的服务器上,我们的配置文件,同一个应用程序的配置文件一样,还有就是多个程序存在相同的配置,当我们配置文件中有个配置属性需要改变,需要改变每个程序的配置属性,这样会很麻烦的去修改配置,那么可用使用ZooKeeper来实现配置中心。为了实现 服务注册与发现,ZooKeeper 提供了一个集中的注册服务,服务节点可以将自己的信息注册到 ZooKeeper 中,客户端则可以从 ZooKeeper 上发现并获取这些服务节点的信息。才会认为写操作成功。

flytalei的博客 1420

大数据基础——分布式协调服务(zookeeper)

分布式协调服务——zookeeper 1 : zookeeper 概述: 1.1 : zookeeper简介: zookeeper是一个分布式的, 开源的分布式应用程序协调服务,是对Google的Chubby组件的开源实现,为Hadoop和HBase的运行提供了相应的服务.他是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护(使得集群中的机器可以共享配置信息中的那些公共的部分);命名服务(是指通过指定的名字来获取资环或者服务的地址,以及提供者的信息,利用zookeeper可以很容易的创建一个

lixufei12138的博客 4020

Zookeeper:分布式协调服务

Zookeeper分布式协调服务:核心能力、应用场景、基础操作

xike1024的博客 1164

Zookeeper 分布式协调服务介绍

公众号原文:Zookeeper 分布式协调服务介绍 博客原文:Zookeeper 分布式协调服务介绍 分布式系统 分布式系统的简单定义:分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 分布式系统的特征: 分布性:系统中的计算机在空间上随意分布和随时变动 对等性:系统中的计算机是对等的,没有主从之分 并发性:并发性操作是非常常见的行为 缺...

小旋锋 的博客 5196

微服务 zookeeper分布式协调服务框架

微服务 zookeeper分布式协调服务框架 一、zookeeper概念 1、zookeeper是什么 zookeeper官网地址:https://zookeeper.apache.org/index.html 什么是zookeeper,这个官网说的很清楚了,分布式协调服务框架。 zookeeper本身是树形结构的存储工具,但是在微服务中不同场景下不同的使用方式,使其具有不同的功能。 2、zookeeper应用场景及说明 zookeeper是一个分布式协调服务框架。 通过对Zookeeper中数据节点

靖节先生的博客 1779

深入解析 ZooKeeper:分布式协调服务的原理与应用

在当今复杂的分布式系统环境中,协调各个组件之间的工作、管理集群状态以及实现高效的服务发现等功能至关重要。ZooKeeper 作为一款强大的开源分布式协调服务,为解决这些问题提供了有效的方案。它在众多大型分布式系统中扮演着核心角色,助力系统实现高可用性、一致性和高效的协同工作。本文将深入探讨 ZooKeeper 的相关知识,包括其定义、应用场景、工作原理、通知机制以及节点监听的特性等内容,帮助读者全面了解和掌握 ZooKeeper 的奥秘。

guihong004的博客 1849
上一篇: Hadoop Yarn调度器的选择和使用
下一篇: Apache NiFi Processor实战
return_values
博客等级 码龄10年 0粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值