zookerper入门

news2024/11/22 5:59:38

zookerper介绍

ZooKeeper 是一个开源的分布式协调框架,主要用来解决分布式集群中应用系统的一致性问题.
在这里插入图片描述
ZooKeeper本质上是一个分布式的小文件存储系统(Zookeeper=文件系统+监听机制).提供基于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理,从而用来维护和监控存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理、统一命名服务、分布式配置管理、分布式消息队列、分布式锁、分布式协调等功能。

安装

1.下载

// 下载地址
https://zookeeper.apache.org/releases.html

2.解压,复制配置文件

// 启动会默认读取文件zoo.cfg
cp zoo_sample.cfg zoo.cfg

3.启动zkserver

// 启动命令
bin/zkServer.sh start
// 启动日志
ZooKeeper JMX enabled by default
Using config: /Users/gy/java/apache-zookeeper-3.8.3-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

4.zkCli连接

// 客户端链接命令
 bin/zkCli.sh
// 连接成功
mplete on server localhost/127.0.0.1:2181, session id = 0x10005ccbcd30000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null

客户端命令

// 显示所有客户端命令
help
// 查看节点
ls [-s] [-w] [-R] path
ls /path --查看当前znode子节点
ls -w /path --监听子节点变化
ls -s /path -- 查看节点状态信息
ls -R /path --表示递归获取
// 创建节点
create  [-s] [-e] [-c] [-t ttl] path [data] [acl]
-s : 创建有序节点
-e : 创建临时节点
-c : 创建一个容器节点。
t ttl : 创建一个TTL节点,-t时间(单位毫秒)
data:节点的数据,可选,如果不使用时,节点
数据就为null
acl:访问控制
// 获取节点数据信息.
get [-s] [-w] path
-s: 节点状态信息; 
-w: 监听节点变化
// 设置节点数据
set [-s] [-v version] path data
-s:表示节点为顺序节点
-v: 指定版本号
// 获取节点的访问控制信息
getAcl [-s] path
-s: 节点状态信息
// 设置节点的访问控制列表
setAcl [-s] [-v version] [-R] path acl
-s:节点状态信息(时间戳、版本号、数据大小
等)
-v:指定版本号
-R:递归的设置
// 查看节点状态信息
stat [-w] path 查看节点状态信息
// 删除某一节点
delete [-v version] path
只能删除无子节点的节点。
-v: 表示节点版本号
// 递归的删除某一节点及其子节点
deleteall path
// 对节点增加限制
setquota -n|-b val path
n:表示子节点的最大个数
b:数据值的最大长度,-1表示无限制

节点分类

// 持久节点 persistent node
创建后会一直存储在ZooKeeper服务器上
create /pNode
// 临时节点 ephemeral node
创建临时节点后,若创建该节点的客户端异常超市或关闭后,该节点也会被删除.
create -e  /eNode
// 有序节点 sequential node
在我们创建有序节点的时候会自动使用一个
单调递增的数字作为后缀。
create -s  /sNode
// 容器节点 container node
当一个容器节点的最后一个子节点被删除后,容器节点也会被删除。
create -c  /sNode
// TTL节点 ttl node
当一个TTL节点在 TTL 内没有被修改并且没有子节点,会被删除。注意:默认此功能不开启,需要修改配置文件extendedTypesEnabled=true,TTL不能用于临时节点.
create -t 1000 /ttl_node

节点状态信息

// stat /test
cZxid = 0x1b  // Znode事务id
ctime = Thu Jan 04 17:19:30 CST 2024 // Znode创建时间
mZxid = 0x1b // Znode被修改的事务id(与cZxid比较可以确定更新操作的顺序)
mtime = Thu Jan 04 17:19:30 CST 2024 // Znode最新更新时间
pZxid = 0x1c // 表示该节点子节点列表最后修改的事务id
cversion = 1 // Znode的版本号
dataVersion = 0 // 数据版本号
aclVersion = 0 // qcl版本号
ephemeralOwner = 0x0 // 若为临时节点,ephemeralOwner与session id绑定,其他都为0
dataLength = 0 // 数据长度
numChildren = 1 // 子节点数量

监听机制

Zookeeper中的watch机制,必须客户端先去服务端注册监听,这样事件发送才会触发监听,通知给客户端.监听的对象是事件.

// 事件类型
None: 连接建立事件
NodeCreated: 节点创建
NodeDeleted: 节点删除
NodeDataChanged:节点数据变化
NodeChildrenChanged:子节点列表变化
DataWatchRemoved:节点监听被移除
ChildWatchRemoved:子节点监听被移除
// Watch
watch是一次性的,一旦被触发就会移除,再次
使用时需要重新注册
// addWatch
永久性Watch.addWatch的作用是针对指定节点添加事件监听,支持两种模式:
PERSISTENT:持久化订阅,针对当前节点的修改和删除事件,以及当前节点的子节点的删除和新增事件。
PERSISTENT_RECURSIVE:持久化递归订阅(默认),在PERSISTENT的基础上,增加了子节点修改的事件触发,以及子节点的子节点的数据变化都会触发相关事件(满足递归订阅特性)

应用场景

ZooKeeper适用于存储和协同相关的关键数据,不适合用于大数据量存储。有了上述众多节点特性,使得 zookeeper 能开发不出不同的经典应用场景,比如:
注册中心、数据发布/订阅(常用于实现配置中心)、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁、分布式队列

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

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

相关文章

离线安装telnet-server

telnet下载地址: https://vault.centos.org/ 需要下载telnet 和 telnet-server 确认自己的服务器版本,我这里使用的是(Red Hat Enterprise Linux Server release 7.0 (Maipo))对应的是Centos 7.0,所有到 https://vault.centos.or…

HarmonyOS应用开发学习笔记 UI布局学习 创建轮播(Swiper) artTS 轮播组件 简单使用

官方文档 Swiper组件提供滑动轮播显示的能力。Swiper本身是一个容器组件,当设置了多个子组件后,可以对这些子组件进行轮播显示。通常,在一些应用首页显示推荐的内容时,需要用到轮播显示的能力。 1、简单用法 loop 控制是否循环 …

AI交互数字人如何助力职工之家数字化建设?

近日,广州市海珠区产投园区工友之家揭牌,首批“工会数字人”正式揭幕亮相,开启24小时零距离全天候服务职工模式。同步进驻海珠区10个产业园区的其他工会数字人也进入全天候服务状态,职工群众可“一码入会”,工会数字人…

非常好用的个人工作学习记事本Obsidian

现在记事本有两大流派:Obsidian 和Notion,同时据说logseq也很不错 由于在FreeBSD下后两种都没有相关ports,所以优先尝试使用Obsidian Obsidian简介 Obsidian是基于Markdown文件的本地知识管理软件,并且开发者承诺Obsidian对于个…

【算法每日一练]-动态规划 (保姆级教程 篇16) #纸带 #围栏木桩 #四柱河内塔

目录 今日知识点: 计算最长子序列的方案个数,类似最短路径个数问题 四柱河内塔问题:dp[i]min{ (p[i-k]f[k])dp[i-k] } 纸带 围栏木桩 四柱河内塔 纸带 思路: 我们先设置dp[i]表示从i到n的方案数。 那么减法操作中&#xff…

Linux-shell简单学习

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 其他…

学习c语言,强制转换

因为sizeof是无符号数所以-1会转换成无符号数,所以答案是i大于sizeof的

权限维持篇

一、Windows 1、 不死马权限维持 1.1 概述 <?php ignore_user_abort(); //关掉浏览器&#xff0c;PHP脚本也可以继续执行. set_time_limit(0);//通过set_time_limit(0)可以让程序无限制的执行下去 $interval 5; // 每隔*秒运行 do { $filename test.php; if(file_exi…

Mysql——索引相关的数据结构

索引 引入 我们知道&#xff0c;数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快&#xff0c;因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找&#xff08;linear search&#xff09;&#xff0c;这种复杂度为…

C# FreeSql使用,基于Sqlite的DB Frist和Code First测试

文章目录 前言FreeSql 简单连接数据库服务不存在没装FreeSql.All装了FreeSql.All安装包选择 DBFirst安装命令行生成器生成Bat创建脚本 基于Sqlite的Code Frist文件夹自动导出到Debug目录Sqlite 数据库安装和创建Sqlite连接数据库自动增列增表测试增列删列改列名同名列改属性 Co…

【小黑嵌入式系统第十四课】μC/OS-III程序设计基础(三)——信号量(任务同步资源同步)、事件标记组(与或多个任务)

上一课&#xff1a; 【小黑嵌入式系统第十三课】PSoC 5LP第二个实验——中断控制实验 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff1a;人工智能 文章目录 1 信号量1.1 简介1.2…

Generalized Focal Loss论文个人理解

论文地址&#xff1a;Generalized Focal Loss: Towards Efficient Representation Learning for Dense Object Detection 论文解决问题 研究人员最近更加关注边界框的表示(representation)及其定位质量估计&#xff08;LQE&#xff0c;本论文中指的是IoU score&#xff09;&a…

加速你的数据库:公司中SQL优化的八大绝招

前言 SQL优化这个问题也是老生常谈了&#xff0c;很多都还是在八股文中了解到&#xff0c;那么公司里的SQL都是咋优化的呢&#xff1f;和八股文一样吗&#xff1f;下面&#xff0c;我将与大家分享我在公司里学到的SQL优化知识。SQL优化是提高数据库性能和减少资源消耗的重要一环…

金融行业案例分享 | 升级业务保障,HyperBDR助力巴西海通银行容灾上华为云

巴西海通银行通过HyperBDR成功将业务从本地VMware容灾上华为云&#xff0c;实现分钟级RTO&#xff0c;保障业务连续性同时优化容灾TCO。 项目背景 海通银行由海通证券股份有限公司控股&#xff0c;是一家受欧盟监管的银行&#xff0c;在葡萄牙里斯本注册成立&#xff0c;业务遍…

mysql定时备份shell脚本和还原

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言数据库备份分类mysqldump命令备份计划1.每日备份&#xff0c;保留30天备份文件2.每月1号备份&#xff0c;保留12个月备份文件 定时调度还原总结 前言 数据库备…

QT第1天

题目&#xff1a;点击按钮改变文字 需要增加一个count属性&#xff0c;并且只需要定义槽&#xff0c;信号函数已经内置好了 //widget.h#ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Wi…

数据分析讲课笔记01:数据分析概述

文章目录 零、学习目标一、本次课程概述二、数据分析的背景&#xff08;一&#xff09;进入大数据时代&#xff08;二&#xff09;数据分析的作用 三、什么是数据分析&#xff08;一&#xff09;数据分析的概念&#xff08;二&#xff09;数据分析的分类1、描述性数据分析2、探…

抛弃安卓,追赶iOS,鸿蒙能否成为中国第二大系统?

据半导体行业观察机构Techinsights发布报告预测&#xff0c;从2024年起&#xff0c;鸿蒙Harmony OS将取代苹果iOS&#xff0c;成为中国市场上第二大智能手机操作系统。 鸿蒙系统&#xff0c;支棱起来了&#xff01;去年&#xff0c;华为前脚“复活”麒麟芯片&#xff0c;后脚宣…

天津大数据分析培训班 常见的大数据培训课程

大数据现在属于热门职业技能之一&#xff0c;不管是大学毕业生&#xff0c;计算机和数据相关专业青年&#xff0c;已经工作一阵的开发人员&#xff0c;运营小白&#xff0c;还是其他想进入这个行当的&#xff0c;可能还没有编程基础的转行人&#xff0c;都想尝试大数据行业&…

2024年人工智能有哪些证书可以报考呢?

由国家工信部权威认证的人工智能证书是跨入人工智能行业的敲门砖&#xff0c;随着人工智能技术的发展越来越成熟&#xff0c;相关的从业人员也会剧增&#xff0c;证书的考取难度也会变高。如果已经从事或者准备从事人工智能行业的人员&#xff0c;对于考证宜早不宜迟&#xff0…