太阳城申博官网登入java架构之路-(分布式zookeeper)初识zookeeper安装与参数详解

本文来源:http://www.sss088.com/www_jianglishi_cn/

太阳城申博官网登入,这些小演员是在百余家艺术培训机构推荐的人选中挑出来的,各个才艺了得,经过前期的反复排练,在导演和指导老师的引导下,感受故事情节的发展,进行身临其境的体验,最终把自己优秀的表演呈现在了舞台上。《宪法》规定,国家为了公共利益的需要,可以依照法律规定对土地和公民私有财产实行征收或者征用并给予补偿。糯米鸡还有蛋白质互补作用,所以,只要不是过量食用或存放后不洁食用,一般不会产生身体上的不适,但应注意糯米不易消化,在吃了过于油腻的菜肴后,应避免吃大量的糯米。  日前,中央组织部专门下发通知,要求各级组织人事部门认真学习贯彻习近平总书记重要讲话、党的十八届六中全会精神和《关于新形势下党内政治生活的若干准则》《中国共产党党内监督条例》,进一步强化责任担当、细化工作措施、突出重点对象、加强监督问责,不断加大提醒、函询和诫勉工作力度,做到从严管理监督伴干部一生、干部在从严管理监督中健康成长。

    红十字国际委员会当天在日内瓦举行新闻发布会说,调查是今年6月至9月在16个国家进行的,抽样人数超过1.7万,是该组织有史以来规模最大的有关民众对战争态度相关话题的民意调查。  三地研究建立绿色转诊通道  记者从北京市卫计委获悉,为贯彻落实京津冀协同发展国家战略,近日,京津冀三地卫生计生委签署了《京津冀卫生计生事业协同发展行动计划(2016-2017年)》,计划将从10个方面开展深化合作,促进协同发展。熊小姐可以要求与4S店签订补充协议,要求对方在限定时间内交车,否则她可以解除定金合同,要求退款。

在深港通开通后,两地资本市场的不断融合将为A股市场带来积极影响。据二人交代,完全是利用村民迷信和急于治好疑难杂症的心理骗取钱财,所住房屋为租赁,其中李某的房子年租金15000元,二人在席王街办扮演神仙行骗一年多,目前两人已经被刑拘。曼哈顿智库经济和政策分析师吉莱纳斯(NicoleGelinas)告诉第一财经记者。其中,北风之神级战略核潜艇因为圆锤导弹迟迟难以入役而无法接替早已老化的德尔塔级战略核潜艇,而基洛夫、光荣、库兹涅佐夫等大型舰艇则因为国内缺乏能够对其进行全面修理的相关能力,基本上就是竭力维持,拖着残病之躯,试图维持俄罗斯的大国面子。

  ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。(百度百科)。ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,其中分布锁和队列有Java和C两个版本,选举只有Java版本。一般用于分布式的消息监听(主要)和分布式锁的用途(次要)。

  我们这次先来简单安装一个zookeeper和zookeeper的一些简单命令的使用。

一、安装

1,下载

  输入,即可下载。我们最新版3.5.5为例来说。

wget /mirrors_tuna_tsinghua_edu_cn/apache/zookeeper/current/apache-zookeeper-3.5.5-bin.tar.gz 

我们也可以直接去官网下载压缩包,然后自己上传到服务器上,下载地址:太阳城申博官网登入/mirrors_tuna_tsinghua_edu_cn/apache/zookeeper/

2,解压

 tar -zxvf apache-zookeeper-3.5.5-bin.tar.gz 

根据自己的习惯可以自行建立软连接,我这apache还有一个tomcat,我就建立一个软连接了。

ln -s apache-zookeeper-3.5.5-bin zookeeper-3.5.5-bin

3,启动

  切换到我们zookeeper下的conf目录下,我们看到有三个文件,其中一个叫zoo_sample.cfg,我们拷贝一份,叫做zoo.cfg。

cp zoo_sample.cfg zoo.cfg

  切换回我们zookeeper下的bin目录下,直接输入

./zkServer.sh start 

就可以启动我们的zookeeper,默认会执行我们刚才复制的配置文件。如果我们不想复制配置文件,我们也可以输入

./zkServer.sh start ../conf/zoo_sample.cfg 

来指定我们的配置文件来启动

查看是否启动成功(在bin目录下执行)

./zkServer.sh status

4,配置(单机)

  我们来看一下我们的配置文件都写了什么吧。

tickTime=2000  # zookeeper时间配置中的基本单位 (毫秒)

initLimit=10 # 允许follower初始化连接到leader最大时长,它表示tickTime时间倍数 即:initLimit*tickTime 

syncLimit=5 # 允许follower与leader数据同步最大时长,它表示tickTime时间倍数 即:syncLimit*tickTime 

dataDir=/tmp/zookeeper # zookeper 数据存储目录

clientPort=2181 # 对客户端提供的端口号

maxClientCnxns=60 # 单个客户端与zookeeper最大并发连接数

autopurge.snapRetainCount=3 # 保存的数据快照数量,之外的将会被清除

autopurge.purgeInterval=1  # 自动触发清除任务时间间隔,小时为单位。默认为0,表示不自动清除。

5,客户端参数详解(本节重点)

  在我们的zookeeper的bin目录下输入

./zkCli.sh 

就进入到我们的客户端了。输入help,先看看都有什么命令再来一个个尝试。

 一个个来说一下。

addauth scheme auth 添加用户,语法在后面权限内会详细去说。

close 断开当前客户端和服务端的连接

config [-c] [-w] [-s] 动态加载配置

connect host:port 连接到客户端 

create [-s] [-e] [-c] [-t ttl] path [data] [acl] 创建节点 -e 临时节点(不允许有子节点) -s 序列节点 -c 默认节点  (path为路径)  【data为数据】 【acl权限】 -t节点存活时间,我这未成功。有弄明白-t的小伙伴帮我一下,留言就行。

delete [-v version] path 删除节点(不能带有子节点) [-v version] 版本号,一般不用

deleteall path 删除节点(包含其子节点)

delquota [-n|-b] path 删除节点限额 -n 子节点数 -b 字节数

get [-s] [-w] path 取得节点的值 -s 取值和状态,-w 添加监听(监听数据)

getAcl [-s] path 取得限权,-s取权限和状态

history 历史操作记录

listquota path 查看节点限额

ls [-s] [-w] [-R] path查看节点  -s查看节点和内容  -w(添加监听是否添加或删除子节点,但不会监听子节点值的变化) -R查到所有节点(包含根节点)

ls2 path [watch] 相当于ls和stat的组合

printwatches on|off 是否打印监听事件

quit 退出当前客户端

reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*] 重新加载配置文件

redo cmdno 重新操作某命令,与history配合使用

removewatches path [-c|-d|-a] [-l] 移除监听

rmr path 删除和deleteAll完全一致(已被deleteAll替换,不建议继续使用)

set [-s] [-v version] path data 给节点赋值 -s返回节点状态

setAcl [-s] [-v version] [-R] path acl 设置节点权限(后面会详细说一下这个)

setquota -n|-b val path 设置节点限额 -n 子节点数 -b 字节数

stat [-w]path 查看节点状态,-w同get -w用法

sync path 强制同步

二、节点类型:

  节点类型主要有四种:

PERSISTENT持久节点,一直存在的

PERSISTENT_SEQUENTIAL持久序号节点,不会重名的节点,可用于分布式锁

EPHEMERAL临时节点(不可在拥有子节点),当客户端退出时会删除。可用于心跳监听

EPHEMERAL_SEQUENTIAL临时序号节点(不可在拥有子节点)

三、节点属性:

 我们可以通过stat [path]命令来查看节点的属性,我们来逐个看一下它对应的什么意思。

cZxid = 0x40 创建时事务ID,持久不变的数值。

ctime = Sat Sep 28 10:39:45 CST 2019 创建时间

mZxid = 0x47 当前数据变更时的事务ID,不包含子节点

mtime = Sat Sep 28 10:43:26 CST 2019 最后修改时间

pZxid = 0x41 子节点变更的事务ID,不包含子节点的数据变更,只是子节点的数量变化

cversion = 1 子节点变更版本号(子节点变更次数)

dataVersion = 1 数据版本号,变更次数

aclVersion = 0 权限版本号,变更次数

ephemeralOwner = 0x0 是否为临时节点,有值表示临时节点

dataLength = 4 当前节点的数据长度

numChildren = 1 子节点的数量

 四、节点监听:

  这里很简单,只要我们添加get  -w [path] 就可以对我们的节点添加监听。这里需要注意的是,我们这的监听不会监听子节点,只监听当前设置节点值得变化和是否被删除。创建子节点和变更子节点的值不会监听。而且这个监听是一次性的。

如果想监听该节点下子节点的新增和删除,我们可以设置ls -w即可。

五、acl权限:

  ACL全称为Access Control List(访问控制列表),用于控制资源的访问权限。ZooKeeper使用ACL来控制对其znode的防问。基于scheme:id:permission的方式进行权限控制。scheme表示授权模式、id模式对应值、permission即具体的增删改权限位。

scheme:认证模型分为四种:

1.world开放模式,world表示全世界都可以访问(这是默认设置)

2.ip,ip模式,限定客户端IP防问。

3.auth用户密码认证模式,只有在会话中添加了认证才可以防问

4.digest与auth类似,区别在于auth用明文密码,而digest 用sha-1+base64加密后的密码。在实际使用中digest 更常见。

permission权限位

c->CREATE可以创建子节点

d->DELETE可以删除子节点(仅下一级节点)

r->READ可以读取节点数据及显示子节点列表

w->WRITE可以设置节点数据

a->ADMIN可以设置节点访问控制列表权限

我们来看一下几个权限设置的小例子。

输入

getAcl /root

 

模式一全开放的就不写了,例如:setAcl /root world:anyone:ra即可。我们先来看一下IP模式的

IP模式:setAcl <path> ip:<ip地址|地址段>:<权限位>

setAcl /authDir ip:127.0.0.1:ra

意思我是对于127.0.0.1的IP设置了authDir目录的读和控制的权限(权限控制)

auth模式:

语法: 

1. setAcl <path> auth:<用户名>:<密码>:<权限位>

setAcl /authDir auth:root:111:rwcda

2. addauth digest <用户名>:<密码>  注意中间的空格

addauth digest root:111

digest 权限:

语法: 

设置echo -n root:123456 | openssl dgst -binary -sha1 | openssl base64 得到输出结果我们进行保存。

也就是我们一会账号root,密码123456对应的加密结果。

 1. setAcl <path> digest :<用户名>:<密钥>:<权限位>

setAcl /digestDir digest:root:qiTlqPLK7XM2ht3HMn02qRpkKIE=:ra

2. addauth digest <用户名>:<密码>

addauth digest root:123456

到这里zookeeper的基本单机操作就说完了,也熟悉了一下,记住stat下面的几个ID啊,后面选举机制很重的参数。我们明天来说一下集群和JAVA_API的操作。

 

 

太阳城申博官网登入
申博娱乐登入 www.7788shenbo.com 申博游戏苹果手机能玩吗 申博138直营网 新版太阳城申博开户 申博管理网直营
www.98tyc.com www.33psb.com 申博sunbet现金直营网 申博网上娱乐登入 申博太阳城亚洲登入 菲律宾申博游戏怎么登入
申博支付宝充值 申博会员登入 www.10086msc.com 申博游戏网直营 太阳成娱乐成总代理 申博线路检测登入