Zookeeper——开源的分布式应用程序协调服务

PRD撰写效率翻倍秘籍:我是如何用大模型+飞书文档搭建自动化工作流的 本文分享了如何利用大模型与飞书文档构建自动化工作流,以大幅提升PRD撰写效率。通过结构化需求输入、设计模块化提示词模板,并借助自动化脚本桥接数据与文档,产品经理可将繁琐的文档撰写工作自动化,从而将精力聚焦于产品战略与用户洞察。 阅读详情

简介

功能:

  1. 可以为client管理少量数据(key-value)
  2. 可以为client监听指定数据节点的状态并在数据节点发生变化时通知客户端

Zookeeper的基本功能和应用场景

在这里插入图片描述

Zookeeper的整体运行机制

在这里插入图片描述

Zookeeper的数据存储机制

zookeeper中对用户的数据采用kv形式存储
只是zk有点特别:
key:是以路径的形式表示的,那就以为着,各key之间有父子关系,比如
/ 是顶层key
用户建的key只能在/ 下作为子节点,比如建一个key: /aa  这个key可以带value数据
 也可以建一个key:   /bb
 也可以建key: /aa/xx 
zookeeper中,对每一个数据key,称作一个znode

集群安装、配置、部署、启动

注意:

初次启动需要奇数台节点(3、5台) 后台进程名:QuorumPeerMain
Leader工作端口:2888
Follower工作端口:3888

  1. 上传安装包,解压
  2. 修改配置文件conf/zoo.cfg(zoo.cfg.template–>zoo.cfg)
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
# 数据存储位置(修改位置1)
dataDir=/root/zkdata
# the port at which the clients will connect
clientPort=2181
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
# server.id = ip:port:port (修改位置2)
server.1=hdp-01:2888:3888
server.2=hdp-02:2888:3888
server.3=hdp-03:2888:3888
  1. 复制拷贝安装包到其它节点
配置文件修改完后,将安装包拷贝给其它节点(hdp-02、hdp-03...)
scp -r /path/to/from to to to ...
ex:scp -r /path/to/zookeeper hdp-02:/path/to/zookeeper hdp-02:/path/to/zookeeper
  1. 新建数据目录,并生成文件myid,内容为id(与配置文件中id对应)
    接着,到hdp-01上,新建数据目录/root/zkdata,并在目录中生成一个文件myid,内容为1
    接着,到hdp-02上,新建数据目录/root/zkdata,并在目录中生成一个文件myid,内容为2
    接着,到hdp-03上,新建数据目录/root/zkdata,并在目录中生成一个文件myid,内容为3
  2. 启动zookeeper集群
lib/zkServer.sh start
  1. 查看zookeeper状态
lib/zkServer.sh start

自定义zkmanager脚本以启动zookeeper

#!/bin/bash
for host in hdp-01 hdp-02 hdp-03
do
ehco “${host}:${1}ing...”
ssh $host “source /etc/profile;/path/to/zookeeper/bin/zkServer.sh $1”
done

./zkmanager.sh start

---------------------------------- 通常到此即可 ----------------------------------

zookeeper客户端(zkCli.sh 2181)

# 1. 启动
bin/zkCli.sh -server hdp-02:2181
# 2.命令
ls /      ls /zookeeper
get /zookeeper    get /zookeeper/quta
create /test “hello”
set /test hellospark
help
rmr /test
get /test watch # 监听节点/test的数据(同步,只一次)
ls /test watch # 监听/test下的节点

znode类型

1.PERSISTENT 持久的:创建者就算跟集群断开联系,该节点也会持久存在于zk集群中
2.EPHEMERAL 短暂的:创建者一旦跟集群断开联系,zk就会将这个节点删除
3.SEQUENTIAL 带序号的:这类节点,zk会自动拼接上一个序号,而且序号是递增的
> ※组合类型
> PERSISTENT:持久不带序号
> EPHEMERAL:短暂不带序号
> PERSISTENT且SEQUENTIAL:持久且带序号
> EPHEMERAL且SEQUENTIAL:短暂且带序号 

EX

> create -e /test 999    # -e 短暂
> create -s /test 66     # ???

JAVA-ZOOKEEPER API

// zookeeper地址,2s超时,null监听回调
Zookeeper zk = new Zookeeper(“hdp-01:2181,hdp-02:2181,hdp-03:2181”,2000,null);
// 1.增
// path,data(byte),acl权限,createNode类型   返回值:path(String)
zk.create(“/test”,”hello”.getBytes(),Ids.OPEN_ACL_UNSAFE,CreateNode.PERSISTENT);
// 2.改
// path,data,version -1代表任何版本
zk.setData(“/test”,”helloworld”.getBytes(“UTF-8”),-1);
// 3.查
// path,是否监听,stat数版本 null代表最新   返回值:data(byte[])
zk.getData(“/test”,false,null);
// 4.查子节点
// path,是否监听     返回值:List<String>节点名称列表
Zk.getChildren(“/test”,false);
// 5.删
// path,version -1代表任何版本
zk.delete(“/test”,-1);
// 6.节点是否存在
Zk.exists(“/test”,fasle); //path.是否监听  返回值:stat 不存在时返回null
Zk.close();

一次监听

Zookeeper zk = new Zookeeper(“”,2000,null);
byte[] data = zk.getData(“/test”,new Watcher(){
  @Override
  public void process(WatchedEvent event){
  sout<<event.getPath(); //节点路径
  sout<<event.getType();//事件类型
  Zk.getData(“/test”,true,null);
}
},null);

一直监听

zk = new Zookeeper(“”,2000,new Watcher(){
  @Override
  Public void process(WatchedEvent event){
  ...
  try{
  Zk.getData(“/test”,true,null);
}catch(KeeperException|InterruptedException e){}
}
});
byte[] data = zk.getData(“/test”,true,null);
sleep(Long.MAX_VALUE); // 内部:thread.setDaemon(true); 设置了守护线程
ex:
event.getState()==keeperState.SyncConnected&&event.getType()==EventType.NodeDataChange

zookeeper图形化客户端插件

在Eclipse环境下安装ZooKeeper状态查看相关的插件步骤如下:
Step 1. 在 Eclipse 菜单打开Help -> Install New Software…
Step 2. 添加 url http://www.massedynamic.org/eclipse/updates/
Step 3. 选择插件并安装运行
Step 4. 在 Eclipse 菜单打开Window->Show View->Other…->ZooKeeper 3.2.2。
Step 5. 连接ZK 输入正在运行的ZK server 地址和端口
连接成功后就就可以在Eclipse里查看ZK Server里的节点信息。如下所示:
在这里插入图片描述

写在最后

欢迎留言私信讨论;
文章有知识性错误请立马联系博主,博主将非常感谢;
无需经过允许即可随意使用转载,知识本来就是被广泛用来学习的;
非常感谢您能看到此处,本文为博主学习笔记,如有不同见解,请不吝赐教。

制作Ubuntu22.04启动盘 现在越来越多程序代码都需要运行在linux环境下,运行这些代码的前提是安装一个稳定的linux操作系统。本文选择Ubuntu 22.04去制作系统启动盘。本文主要对ubuntu22.04的启动盘制作过程进行了详细的说明,希望能帮助到有需要的朋友。 阅读详情

相关推荐

PyTorch实战:3D U-Net医学图像分割从零搭建(附完整代码)

本文详细介绍了如何使用PyTorch从零搭建3D U-Net模型进行医学图像分割,涵盖三维卷积实现、模块化架构设计、医学图像专属优化策略及完整训练流程。通过实战代码演示,帮助开发者掌握UNet-3D在CT、MRI等三维医学图像分割中的应用,提升肝脏肿瘤分割、肺结节检测等任务的准确性。

weixin_29061997的博客 330

树莓派 使用 i2c 连接 LCD1602/LCD1602A 模块

成品 准备 LCD1602/LCD1602A 模块 IIC LCD1602 拓展板 配置 raspi-config >>> Interfacing Options >>> P5 I2C >>> enabled 连接 拓展板与LCD1602连接(正放LCD1602与拓展板,拓展板在上,拓展板四pin朝向左方) VCC、GND SDA、SCL 分别与树莓派对应连接(3.3v 下方,依次为SDA、SCL) 重启树莓派 代码 ''' 16

Destinyabc的博客 3471

不用API Key也能玩转Obsidian AI:本地大模型离线配置全攻略

本文详细介绍了如何在无需API Key的情况下,通过本地部署大型语言模型(LLM)为Obsidian注入AI能力。文章以Ollama为例,提供了从环境准备、模型选择到与Obsidian插件(如Text Generator)集成的完整配置攻略,旨在帮助用户打造一个安全、离线可用的智能笔记工作流,实现数据隐私与AI助力的完美结合。

weixin_29062963的博客 818

LIRC源码分析(2)

下面我们来看LIRC到底如何工作的?  从哪儿下手呢?先看LIRC的工具mode2,看看mode2的源码。首先看初始化部分:int main(int argc,char **argv) { int fd; char buffer[sizeof(ir_code)]; lirc_t data; unsigned long mode; char *device=LIRC_DRIVER_DEVICE; struct stat s; int dmode=0; unsigned lon

思考,行动,再思考,再总结 3777

保姆级教程:用GROMACS的FEP方法计算小分子结合自由能(附完整mdp配置)

本文提供了一份详细的GROMACS自由能微扰(FEP)计算教程,涵盖从系统准备、参数配置到结果分析的全流程。通过具体案例演示如何计算小分子结合自由能,包括λ窗口设计、动力学参数优化及并行化执行技巧,帮助研究者克服FEP计算中的常见问题,获得可靠的自由能数据。

weixin_30598225的博客 353

ROS教程(四):RVIZ使用教程(详细图文)

前言 根据前面的教程已经学会了创建功能包,那么本篇文章主要内容则是通过节点来发布数据至RVIZ

Leslie的博客 17万+

WARNING:tensorflow:The name tf.GPUOptions is deprecated. Please use tf.compat.v1.GPUOption.解决方案

在ubuntu系统上使用tensorflow-gpu1.14.0版本运行深度学习模型每次弹出的warning: WARNING:tensorflow:From execute.py:233: The name tf.set_random_seed is deprecated. Please use tf.compat.v1.set_random_seed instead. From execu...

Thanours的博客 1万+

语音识别:PyAudio、SoundDevice、Vosk、openai-whisper、Argos-Translate、FunASR(Python)

本文介绍了Python中常用的音频处理库PyAudio,详细解析了其核心功能、核心概念和典型工作流程。PyAudio是一个跨平台的音频I/O库,支持音频录制、播放、实时流处理和低延迟操作。核心概念包括PyAudio类(管理音频设备和流)和Stream类(代表音频流)。文章重点讲解了open()方法的关键参数、回调函数的使用方式以及典型的工作流程,包括设备查询、流配置和资源释放。PyAudio适用于需要实时音频处理的场景,如语音识别和音频效果处理。

算法工程师 706

分布式应用程序协调服务zookeeper在.NET平台上的使用

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee

每天进步一点点 1万+

七天征服AutoSAR/SomeIP_01速成配置并代码生成

本文为AutoSAR中SomeIP配置开发的实操指南摘要,重点介绍通过通信矩阵快速构建SomeIP工程的方法。核心内容包括:1)基于Excel通信矩阵生成系统描述文件(arxml);2)在AutoSAR工具中导入文件自动生成协议栈配置,涵盖ETHIF、SoAd等模块;3)关键报错处理(COM/PDUR/SOAD/SD模块的配置修正);4)SomeIPXF的数据编解码配置;5)SWC组件与RTE任务映射。教程强调"先完成再完美"的实践原则,指导开发者快速生成基础代码框架,为后续协议调试奠定

大叔带刺的博客 303

大语言模型原理与工程实践:行业大语言模型的评测:以金融行业大语言模型为例

大语言模型、金融行业、模型评测、自然语言处理、深度学习、Transformer、BERT、GPT 1. 背景介绍 近年来,大语言模型(Large Language Model,LLM)在自然语言处理(Natural Language Processing,NLP)领域取得了突破性的进

AI大模型应用之禅 137

ZooKeeper的同步流程

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式式应用程序可以基于它实现同步服务,配置维护和命名服务等。ZooKeeper是Hadoop的一个子项目。在分布式应用中,由于工程师不能很好的使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。ZooKeeper目的于此。Zoo

1746

【OpenClaw从入门到精通】第11篇:OpenClaw 2026多模态实战全攻略:OCR/语音/图像自动化(附完整代码+双部署方案)

本文聚焦OpenClaw 2026版核心升级的多模态能力,从底层架构原理到实操落地全流程拆解。先解析“统一指令解析+多工具适配器”的核心设计逻辑,再提供阿里云规模化部署(适合批量任务)与本地汉化版部署(适合隐私数据调试)的详细步骤,含依赖安装、配置验证完整操作;随后落地三大高频实战场景——OCR合同信息结构化提取、会议录音自动转写纪要、电商商品图片智能打标,每个场景均提供可直接运行的完整代码、执行结果演示及流程说明;最后补充多模态任务避坑指南、性能优化技巧与成本控制方案。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2611

zookeeper

下载https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 安装与部署:http://blog.youkuaiyun.com/lihao21/article/details/51778255 转载于:https://www.cnblogs.com/chenzeyong/p/7059495.html...

aishufan4507的博客 95

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Zookeeper: 一个分布式应用程序协调服务

Zookeeper: A Service for Coordinating Processes of Distributed ApplicationsA Scalable,reliable,robust centrailized service ZooKeeper是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zooke

lilele12211104的专栏 6926

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ZooKeeper:分布式应用程序的分布式协调服务

  ZooKeeper--动物园管理员 ZooKeeper:分布式应用程序的分布式协调服务 设计目标 数据模型和分层命名空间 节点和短暂节点 有条件的更新和手表 担保 简单的API 履行 用途 性能 可靠性 ZooKeeper项目 ZooKeeper:分布式应用程序的分布式协调服务 ZooKeeper是一种用于分布式应用程序的分布式开源协调...

YunWisdom 522

pscad IEEE标准系统搭建说明

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

学习Hadoop——Zookeeper 介绍

Zookeeper 是一个开源的分布应用程序协调服务,来自于Google 一个开源的实现,是Hadoop 和HBase 的重要组件。Zookeeper 可以为分布式应用提供一致性服务,功能包括:配置服务、名字服务、分布式同步、组服务等等。Zookeeper 的目标是封装好复杂易出错的关键服务,将简单易用的接口和性能高效,功能稳定的系统提供给用户。Zookeeper 包含一个简单的原语集,提供Jav...

y805805的博客 5183

zookeeper安装和使用 windows环境

简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 ZooKeeper包

12万+

Zookeeper详解

Zookeeper简介zookeeper是一个为分布式应用所设计的开源协调服务,提供同步,配置管理,分组和命名服务。 设计目标: 简单化 zookeeper允许分布式的进程通过共享体系内的命名空间来进行协调,其组织与标准的文件系统非常相似,是由一些数据寄存器组成,在zookeeper中,这些寄存器称之为znode。zookeeper的数据存放在内存当中,因此其具有高吞吐量和低延迟。 健壮性 z

追梦者的部落格 3288

什么是Zookeeper?

Zookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以单机模式安装运行,不过它的长处在于通过分布式Zo...

飞上云端看彩虹 259

linux 安装zookeeper

linux 安装zookeeper

Lai助网络科技的博客 569

ZooKeeper简介与项目中应用

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。它被设计成易于编程,并且使用了一种以熟悉的文件系统目录树结构为样式的数据模型。它运行在Java中,绑定了Java和C语言。总所周知,服务协调是出了名的很难做。它们特别容易出错,例如竞争条件和死锁。ZooKeeper背后的动机是减轻分布式应用程序从零开始实现协调服

微服务技术栈 829

Zookeeper是什么?

一、简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件。

程序员云帆哥的博客 8548

实现基于Zookeeper的分布式协调服务

实现基于Zookeeper的分布式协调服务大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!1. 什么是Zookeeper?Zookeeper是一个开源的分布式应用程序协调服务,提供高效的分布式数据管理和协调能力。它主要用于解决分布式应用中的数据一致性问题,如服务注册与发现、分布式锁、配置管理等...

weixin_41210524的博客 111

Zookeeper入门

文章目录Zookeeper是什么Zookeeper能做什么Zookeeper原理Zookeeper安装Zookeeper详细教程 Zookeeper是什么 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组...

赈川 239

zookeeper原理

一、概述: 1.1、什么是ZooKeeper? ZooKeeper是一种集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务。所有这些类型的服务都以分布式应用程序的某种形式使用。每次实施它们都需要做很多工作来修复不可避免的错误和竞争条件。由于难以实现这些类型的服务,应用程序最初通常会吝啬它们,这使得它们在变化的情况下变得脆弱并且难以管理。即使正确完成,这些服务的不同实现也会在部署...

lixinkuan的博客 392
上一篇: 直播开发的前端实现(web、React Native...)
下一篇: 树莓派红外遥控 (lirc、gpio-ir)——一遍过
代码绘世界
博客等级 码龄8年 28粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

代码绘世界

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

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

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

打赏作者

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

抵扣说明:

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

余额充值