一.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)---初识的更多相关文章

  1. 【Zookeeper】初识zookeeper

    单机模式 安装并解压: 修改配置文件,conf/zoo.cfg(配置完成后,启动后,可以通过netstat-ano命令查看是否有你配置的clientPort端口号在监听服务) tickTime: zo ...

  2. ZooKeeper之初识

    它是什么 俗称动物管理员,它使用java开发,开源,接口简单,高效,稳定的分布式系统,为其它分布式系统提供协调服务 为什么会存在? 开发分布式系统跟单机上做开发完全不同,碰到的问题完全不同,开发分布式 ...

  3. hbase官方文档(转)

    FROM:http://www.just4e.com/hbase.html Apache HBase™ 参考指南  HBase 官方文档中文版 Copyright © 2012 Apache Soft ...

  4. 初识zookeeper(1)之zookeeper的安装及配置

    初识zookeeper(一)之zookeeper的安装及配置 1.简要介绍 zookeeper是一个分布式的应用程序协调服务,是Hadoop和Hbase的重要组件,是一个树型的目录服务,支持变更推送. ...

  5. Dubbo+Zookeeper(一)Zookeeper初识

    前面花了一段时间去学习SpringCloud的相关知识,主要是理解微服务的概念并使用SpringCloud的一系列组件实现微服务落地.学习这些组件本身是简单的,跟着操作一遍基本就会了,这也得益于Spr ...

  6. 初识zookeeper以及安装和集群部署

    初识zookeeper以及安装和集群部署     一.Zookeeper单体版安装     在安装zookeeper之前要先安装jdk环境,具体在linux环境安装jdk1.8请参照linux笔记. ...

  7. 初识ZooKeeper

    最近在看Apache下的一个开源项目ZooKeeper(http://zookeeper.apache.org/doc/trunk/),用百度百科介绍的来说,Zookeeper是一个针对大型分布式系统 ...

  8. zookeeper初识之原理

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等. Zookeeper是hadoop的一个子项目 ...

  9. 初识zookeeper(二)之与Dubbo-admin关联

    1.简介:dubbo-admin,即dubbo管理控制台,管理控制台为内部裁剪版本,开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能,主要是用于Dubbo服务的 ...

  10. 初识zookeeper(一)之zookeeper的安装及配置

    1.简要介绍 zookeeper是一个分布式的应用程序协调服务,是Hadoop和Hbase的重要组件,是一个树型的目录服务,支持变更推送.除此还可以用作dubbo服务的注册中心. 2.安装 2.1 下 ...

随机推荐

  1. 吐槽:基于PhoneGap开发移动项目

    目前,随着Google的Android手机和苹果的iphone手机的逐渐普及,越来越多开发者加入到移动应用开发的大军当中.其中,Android应用是基于Java语言基础上进行开发的,而苹果公司的iph ...

  2. php时区问题

    今天遇到一个很诡异的问题: 数据库中存的日期信息为时间戳,用php取出数据库中的日期信息,并用date()函数转化为“Y-m-d”后,发现和mysql格式化函数Date_Format()处理后的结果不 ...

  3. busybox rootfs 启动脚本分析(一)

    imx6文件系统启动脚本分析.开机运行/sbin/init,读取/etc/inittab文件,进行初始化. 参考链接 http://blog.163.com/wghbeyond@126/blog/st ...

  4. 你知不知道 Cookie正在泄露你的隐私!

    关于电脑上的Cookie,我想很多朋友都还是有所了解的,遇到诸如论坛帐号无法登录此类问题的时候,大家都知道先清除一下IE的Cookie,然后再重新登录就很有可能可以解决问题.然而,即使是最熟悉的东西也 ...

  5. 关于sqoop与datax。 和sqoop to oracle插件OraOop

         之前我还在想了解下datax,是否有可能替换sqoop,但了解后发现,datax和sqoop的业务场景是不同的.前者适合异构数据库的同步,后者适合hdfs与rdbms互相之间的同步.针对sq ...

  6. Windows Phone 8 实现列表触底加载

    [背景] 很多时候在做WP开发的过程中会遇到数据需要分页获取,根据微软官方的推荐方式,建议实现为Market中类似的体验,即滑动到列表的底部的时候加载更多的数据. 这一需求在早起WP7.1时代实现起来 ...

  7. html postMessage 创建聊天应用

    应用说明: 这个例子演示如何在门户页面以iframe方式嵌入第三方插件,示例中使用了一个来域名下的应用部件,门户页面通过postMessage来通信.iframe中的聊天部件通过父页面标题内容的闪烁来 ...

  8. wp7之换肤原理简单分析

    wp7之换肤原理简单分析 纠结很久...感觉勉强过得去啦.还望各位大牛指点江山 百度找到这篇参考文章http://www.cnblogs.com/sonyye/archive/2012/03/12/2 ...

  9. 设计一种前端数据延迟加载的jQuery插件(2)

    背景 最近看到很多网站都运用到了一种前端数据延迟加载技术,包括淘宝,新浪网等等,这样做的目的可以使得一些未显示的图片随 着滚动条的滚动进行延迟显示. 好处显而易见,可以减少前端对于图片的Http请求, ...

  10. MQTT——入门介绍

    笔者相信大家对HTTP一定不能陌生."HTTP协议的三次握手四次挥手"相信也略有耳闻.HTTP协议的优势相信大家都明白.不然他不会这流行.然而这并不能忽略他的缺点.最大的特点就是无 ...