Zookeeper(1)---初识
一.ZK简述
Zookeeper,它是一个分布式程序的协调服务,它主要是用来解决分布式应用中的一些数据管理问题,比如集群管理,分布式应用配置,分布式锁,服务注册/发现等等。
它是一个类似于文件系统的树状结构。每个目录被称为znode,可以删除目录,添加子目录这些操作,不同的是每个znode上面都是存储数据的,如下图:
客户端可以监听这些目录节点,当结点数据发生改变,节点被删除,增加子节点时,zk会通知客户端。以此来实现很多分布式数据管理的操作。比如我们把服务的一些配置数据放在某个节点上面,所有的该服务都监听这个节点,一旦节点数据(配置)发生变化,所有的该服务都会收到通知,然后各自更新配置,就不用每个服务都手动去更新配置了。
ZK的节点有四种类型的:
持久节点(PERSISTENT):客户端与ZK断开连接之后,节点依旧存在
持久序号节点(PERSISTENT_SEQUENTIAL):同持久节点,只是ZK会给该结点进行顺序编号
临时节点(EPHEMERAL):客户端与ZK断开连接之后,节点会被删除
临时序号节点(EPHEMERAL_SEQUENTIAL):同临时节点,只是ZK会给该结点进行顺序编号
二、安装和配置
简单有个认识之后,安装来体验一下:
ZK是java开发的,所以先要有JDK
https://zookeeper.apache.org/releases.html#download
下载解压这个就赘述了
解压之后的/conf目录下面有默认的配置文件zoo_sample.cfg
重命名或者复制一份出来:cp zoo_sample.cfg zoo.cfg
然后去解压后的bin目录下面,执行zkServer.sh脚本 默认会使用zoo.cfg配置文件;或者指定配置文件启动:./zkServer.sh start ../conf/zoo.cfg 如果是windows环境那么就执行cmd的脚本就可以了。
至此zk服务就启动了,默认的端口号2181.
现在我们再回来看看zk的一些配置信息(zoo.cfg文件):
tickTime=2000 zookeeper时间配置中的基本单位 (毫秒)
initLimit=10 允许follower初始化连接到leader最大时长,它表示tickTime时间倍数 即:initLimit*tickTime
syncLimit=5 允许follower与leader数据同步最大时长,它表示tickTime时间倍数
dataDir=/tmp/zookeeper 数据存储目录
clientPort=2181 对客户端提供的端口号
maxClientCnxns=60 单个客户端与zookeeper最大并发连接数
autopurge.snapRetainCount=3 保存的数据快照数量,之外的将会被清除
autopurge.purgeInterval=1 自动触发清除快照任务时间间隔(超过autopurge.snapRetainCount配置的),小时为单位。默认为0,表示不自动清除。
三、体验
先使用自带客户端来连接玩玩 bin目录下面./zkCli.sh
连接之后可以使用help查看指令
create [-s] [-e] [-c] [-t ttl] path [data] [acl] 创建节点 -s序号节点 -e临时节点
Delete 删除节点(有子节点不能删除)
Deleteall 删除节点(包含子节点)
Delquota [-n] [-b] 删除配额(比如节点设置了数据大小限制) -n数量 -b 大小
get [-s] [-w] path 查看节点 -s包含状态 -w添加监听
getAcl [-s] path 获取权限配置
History 查看历史指令
listquota path 当前节点有哪些配额
ls [-s] [-w] [-R] path 查看所有子节点 -R递归查看所有子节点
removewatches path [-c|-d|-a] [-l] 删除监听
set [-s] [-v version] path data 修改数据
setAcl [-s] [-v version] [-R] path acl 添加/修改权限
setquota -n|-b val path 设置配额
stat [-w] path 查看状态
sync path 强制同步节点数据
知道了这些命令之后就可以玩一下了:
Ls / 查看根节点,可以看到默认就有一个zookeeper节点
注意点:
1.创建节点要以/开始
2.创建节点只能一级一级的创建
3.临时节点不能创建子节点
Zookeeper(1)---初识的更多相关文章
- 【Zookeeper】初识zookeeper
单机模式 安装并解压: 修改配置文件,conf/zoo.cfg(配置完成后,启动后,可以通过netstat-ano命令查看是否有你配置的clientPort端口号在监听服务) tickTime: zo ...
- ZooKeeper之初识
它是什么 俗称动物管理员,它使用java开发,开源,接口简单,高效,稳定的分布式系统,为其它分布式系统提供协调服务 为什么会存在? 开发分布式系统跟单机上做开发完全不同,碰到的问题完全不同,开发分布式 ...
- 遇见ZooKeeper:初识
0. 什么是ZooKeeper ZooKeeper 是一个开源的分布式,它的设计目标是将那些复杂且容易出错的分布式协同服务封装起来,抽象出一个高效可靠的原语集,并以一系列简单的接口提供个用户使用. Z ...
- zookeeper篇-初识zookeeper
点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. 什么是zookeeper? 中间件 作用于分布式系统 支持java.c语 ...
- Zookeeper(2)---节点属性、监听和权限
之前通过客户端连接之后我们已经知道了zk相关的很多命令(Zookeeper(1)---初识). 节点属性: 现在我们就通过stat指令来看看节点都有哪些属性,或者使用get 指令和-s参数来查看节点数 ...
- 初识zookeeper(1)之zookeeper的安装及配置
初识zookeeper(一)之zookeeper的安装及配置 1.简要介绍 zookeeper是一个分布式的应用程序协调服务,是Hadoop和Hbase的重要组件,是一个树型的目录服务,支持变更推送. ...
- Dubbo+Zookeeper(一)Zookeeper初识
前面花了一段时间去学习SpringCloud的相关知识,主要是理解微服务的概念并使用SpringCloud的一系列组件实现微服务落地.学习这些组件本身是简单的,跟着操作一遍基本就会了,这也得益于Spr ...
- 初识zookeeper以及安装和集群部署
初识zookeeper以及安装和集群部署 一.Zookeeper单体版安装 在安装zookeeper之前要先安装jdk环境,具体在linux环境安装jdk1.8请参照linux笔记. ...
- 初识ZooKeeper
最近在看Apache下的一个开源项目ZooKeeper(http://zookeeper.apache.org/doc/trunk/),用百度百科介绍的来说,Zookeeper是一个针对大型分布式系统 ...
随机推荐
- C#开发PACS医学影像处理系统(二):界面布局之菜单栏
在菜单栏布局上,为了使用自定义窗体样式和按钮,我们需要先将窗体设置为无边框,然后添加一个Grid作为菜单栏并置顶,VerticalAlignment="Top" logo图片和标题 ...
- 《Offer一箩筐》一份高质量「简历」撰写指南,望打扰!!
「MoreThanJava」 宣扬的是 「学习,不止 CODE」. 如果觉得 「不错」 的朋友,欢迎 「关注 + 留言 + 分享」,文末有完整的获取链接,您的支持是我前进的最大的动力! Hi~ 这里是 ...
- C#开发PACS医学影像处理系统(六):加载Dicom影像
对于一款软件的扩展性和维护性来说,上层业务逻辑和UI表现一定要自己开发才有控制权,否则项目上线之后容易被掣肘, 而底层图像处理,我们不需要重复造轮子,这里推荐使用fo-dicom,同样基于Dicom3 ...
- xss构造--如何使用xss语句
XSS的构造 1.利用[<>]构造html/js 如[<script>alert(/xss/)</script>] 2.伪协议 使用javascript:伪协议来构 ...
- Noip2017 Day2 T1 奶酪
题目描述 现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞.我们可以在这块奶酪中建立空间坐标系,在坐标系中,奶酪的下表面为z =0,奶酪的上表面为 ...
- 升级微服务架构5:API网关
API网关是一个服务器,是系统的唯一入口.从面向对象设计的角度看,它与外观模式类似.API网关封装了系统内部架构,为每个客户端提供一个定制的API.它可能还具有其它职责,如身份验证.监控.负载均衡.缓 ...
- MYsql添加用户、赋予权限
1.创建新用户 CREATE USER 'admin'@'%' IDENTIFIED BY '123456'; '%' 表示可以远程登录访问.操作 ‘localhost’ 表示只能本地登录访问.操作2 ...
- Linux实战(13):Ubuntu被远程
此方法采用的xrdp原生方案,优点兼容性比较好. 安装xrdp sudo apt install xrdp #最高权限安装xrdp 修改配置 nano /etc/xrdp/startwm.sh #使用 ...
- http(Hyper Text Transfer Protocol)
一.定义 http(Hyper Text Transfer Protocol):超文本传输协议二.作用 数据传输三.概念 HTTP消息: 1.客户端发向服务器的请求消息 ...
- pytest封神之路第零步 快速入门
背景:本文是在系列第五篇发表后的补充篇章,第一篇介绍了tep,可能对不熟悉pytest的朋友不够友好,特意补充入门篇,帮大家快速了解如何动手写pytest.如果你是从这篇文章第一次阅读,那么请忽略以上 ...