乐虎游戏|乐虎国际登录|欢迎你

ZooKeeper开发手册中文翻译

日期:2019-11-05编辑作者:计算机资讯

摘要 自个儿翻译的ZooKeeper官方文书档案,供给的人能够参见一下,有翻译错误还请指正。

原来的书文地址: 

目录

翻译:steve sun 博客地址:

ZooKeeper的数据模型
ZNodes
ZooKeeper中的时间
ZooKeeper状态结构(Stat Structure)
ZooKeeper Sessions
ZooKeeper Watches
动用ACL调节ZooKeeper访问权限
ACL权限
内建ACL模式
ZooKeeper C client API
插件式ZooKeeper认证
生机勃勃致性保障
编制程序接口
广大难点和故障

本文要是你早已具备一定遍布式统计的基本功知识。你将在率先有的来看以下内容:

翻译:steve sun 博客地址:

  • mg电子游戏网址,ZooKeeper数据模型
  • ZooKeeper Sessions
  • ZooKeeper Watches
  • 大器晚成致性保证(Consistency Guarantees)

--------------------------------------分割线

ZooKeeper集群配置 http://www.linuxidc.com/Linux/2013-06/86348.htm

应用ZooKeeper完结布满式分享锁 http://www.linuxidc.com/Linux/2013-06/85550.htm

布满式服务框架 ZooKeeper -- 处理遍布式遭受中的数据 http://www.linuxidc.com/Linux/2013-06/85549.htm

IG六合彩,ZooKeeper集群情形搭建实行 http://www.linuxidc.com/Linux/2013-04/83562.htm

ZooKeeper服务器集群蒙受安排实地度量 http://www.linuxidc.com/Linux/2013-04/83559.htm

ZooKeeper集群安装 mg老虎机注册网址,http://www.linuxidc.com/Linux/2012-10/72906.htm

接下去的4小节描述了前后相继开垦的实际利用:

ag视讯直播,--------------------------------------分割线

本文若是你曾经颇负一定分布式总计的底子知识。你将在首先局地来看以下内容:

  • ZooKeeper数据模型

  • ZooKeeper Sessions

  • ZooKeeper Watches

  • 意气风发致性保险(Consistency Guarantees)

接下去的4小节描述了先后开垦的实在应用:

  • 创造模块——ZooKeeper操作指导

  • 编制程序语言接口

  • AG视讯厅,简短示例演示程序的结构

  • BG视讯直播,布满难点和故障

正文的附录中包罗和ZooKeeper相关的有用音讯。

  • PTS电子游艺,始建立模型块——ZooKeeper操作指点
  • 编制程序语言接口
  • 简易示例演示程序的布局
  • 家常便饭难题和故障

ZooKeeper的数据模型

ZooKeeper有贰个好像布满式文件系统的命名种类。区别在于Zookeeper每一种八个节点或子节点都得以享有多少。节点路线是二个由斜线分开的相对路线,注意未有相对路线。只要满意上边要求的unicode字符都能够用作节点路线:

  • 空字符不能够出以往路线名

  • 无法现身以下字符: u0001 - u0019 and u007F - u009F

  • 以下字符分化意行使: ud800 -uF8FFF, uFFF0-uFFFF, uXFFFE - uXFFFF (where X is a digit 1 - E), uF0000 - uFFFFF

  • 字符"."能够作为三个名字的豆蔻梢头有的, 但是"."和".."无法独立作为相对路线使用, 以下用法都以没用的: "/a/b/./c"或然"/a/b/../c"

  • "zookeeper"为保存字符

本文的附录中蕴藏和ZooKeeper相关的有用新闻。

ZNodes

ZooKeeper树结构中的节点被誉为znode。各种znode维护着生龙活虎组用来标志数据和做客权限发生变化的版本号。那几个版本号组成的动静结构 具有的时候间戳。Zookeeper使用版本号和岁月戳来证实缓存状态,调度立异。 每一遍znode中的数据发生变化,znode的本子号增添。比方,每当多少个顾客端过来数据时,它就选取那几个版本的数量,而当一个客商端提交了翻新或删除记 录,它必得同临时候提供那么些znode当前正值爆发变化的数额的本子。如若那个本子和当前真正的版本不相配,则交由无效。 __唤醒,在布满式程序中,八个字节点能够代表一个通用的主机,服务器,集群中的风姿罗曼蒂克员,顾客端程序等。可是在Zookeeper中,znode代表数量节 点,Servers代表组成了Zookeeper服务的机械; quorum peers refer to the servers that  make up an ensemble; 顾客端代表任何利用ZooKeeper服务的主机或程序。

znode作为对前后相继开垦来讲最关键的新闻,有多少个特征供给特意关切下:

Watches 客商端可以在znode上安装Watch。znode产生的变化会触发watch然后消除watch。当三个watch被触发,Zookeeper给顾客端发送几个通知。越来越多关于watch的剧情请查看ZooKeeper Watches生机勃勃节。

多少存取 命名空间中每一个znode中的数据读写是原子操作。读操作读取znode中的全部数据位,写操作则替换全部数据。每一种节点皆有二个做客权限决定表 (ACL卡塔 尔(英语:State of Qatar)来标志何人能够做什么样。 zookeeper不是规划成日常的数据库或大型对象存款和储蓄的。它是用来治本coordination data。coordination  data满含安排文件、状态新闻、rendezvous等。那一个数据结构的叁个齐声特点就是对峙超小——以千字节为准。Zookeeper的顾客端和劳务 会检查确认保证每种znode上的多少低于1M,实际平平均数量据要远远低于1M。 大面积数据的操作会引发部分地下的主题材料同不经常间延长在互联网和媒介物之间传输的时辰。如果确实要求大型数据的积累,那么能够利用如NFS或HDFS之类的特大型数据 存款和储蓄系统,亦可能在zookeeper中蕴藏指向存款和储蓄地点的指针。

临时节点(Ephemeral Nodes卡塔尔 zookeeper还会有不常节点的定义,那一个节点的生命周期注重于创制它们的session是不是活跃。session甘休时节点即被消亡。也由于这种特点,有时节点分化意有子节点。

队列节点——命名不唯大器晚成 当您创设节点的时候,你会须求zookeeper提供生机勃勃组单调依次增加的计数来作为路线结尾。这么些计数对父znode是唯生龙活虎的。用%010d的格式——用0来填充的十位数(计数如此命名是为了轻便排序卡塔尔国。举个例子"0000000001",注意流速計是有标记整型,抢先表示范围会溢出。

ZooKeeper的数据模型

ZooKeeper有一个好像布满式文件系统的命名体系。不一致在于Zookeeper每种叁个节点或子节点都足以具备数据。节点路线是四个由斜线分开的相对路径,注意未有相对路径。只要满意下面须求的unicode字符都得以看成节点路线:

  • 空字符不可能冒出在路线名
  • 无法冒出以下字符: u0001 - u0019 and u007F - u009F
  • 以下字符不容许使用: ud800 -uF8FFF, uFFF0-uFFFF, uXFFFE - uXFFFF (where X is a digit 1 - E), uF0000 - uFFFFF
  • 字符"."能够当作叁个名字的少年老成部分, 不过"."和".."不能够独立作为相对路线使用, 以下用法都以不行的: "/a/b/./c"只怕"/a/b/../c"
  • "zookeeper"为保存字符

ZooKeeper中的时间

zookeeper有那多少个记录时间的不二等秘书诀:

  • Zxid(ZooKeeper Transaction Id): zookeeper每便产生改变都会追加zxid,zxid越大,爆发的时日越靠后。

  • Version numbers: 对znode的变动会大增版本号。版本号包含version (znode上多少的校正数), cversion (znode的子节点的矫正数), aversion (znode上ACL(权限卡塔 尔(阿拉伯语:قطر‎的修正数)。

  • Ticks : 多个server构成zookeeper服务时,各类server用ticks来标志如气象反映、连接超时等事件。ticks  time还直接反映了session超时的最小值(两次tick time卡塔 尔(阿拉伯语:قطر‎;倘若客商端要求的微小session  timeout低于这些小小的值,服务端会布告客商端最小超时置为那一个超小值。

  • Real time : 除了每一次znode创造或退换时候将时刻戳记录到状态结构中外,zookeeper不行使机械钟时间。

ZNodes

ZooKeeper树结构中的节点被喻为znode。各类znode维护着大器晚成组用来标志数据和访谈权限发生变化的版本号。那一个版本号组成的景况结构有所时间戳。Zookeeper使用版本号和时间戳来注脚缓存状态,调解立异。 每一趟znode中的数据产生变化,znode的版本号扩展。举个例子,每当三个客商端过来数据时,它就选取这一个本子的数码,而当三个顾客端提交了更新或删除记录,它必需同临时候提供那个znode当前正在发生变化的多寡的版本。如若那些本子和近些日子实际的本子不匹配,则交给无效。 __提醒,在布满式程序中,叁个字节点能够表示八个通用的主机,服务器,集群中的风姿洒脱员,顾客端程序等。不过在Zookeeper中,znode代表数量节点,Servers代表组成了Zookeeper服务的机械; quorum peers refer to the servers that make up an ensemble; 客商端代表任何利用ZooKeeper服务的主机或程序。

znode作为对前后相继开拓来讲最要害的音讯,有几天性状要求特意关爱下:

Watches 客商端能够在znode上设置Watch。znode产生的变化会触发watch然后毁灭watch。当二个watch被触发,Zookeeper给客商端发送三个通报。越来越多关于watch的内容请查看ZooKeeper 沃特ches生龙活虎节。

数码存取 命名空间中各样znode中的数据读写是原子操作。读操作读取znode中的全数数据位,写操作则替换全部数据。每一个节点都有二个拜望权限决定表(ACL卡塔 尔(阿拉伯语:قطر‎来标志哪个人能够做什么。 zookeeper不是设计成平时的数据库或大型对象存款和储蓄的。它是用来治本coordination data。coordination data饱含铺排文件、状态音信、rendezvous等。那么些数据结构的四个同盟特点正是对峙相当小——以千字节为准。Zookeeper的客商端和劳务会检查确认保障每种znode上的多寡低于1M,实际平平均数量据要远远低于1M。 大面积数据的操作会抓住部分地下的主题素材同不常间延长在网络和媒介物之间传输的流年。如若真的供给大型数据的积攒,那么可以运用如NFS或HDFS之类的大型数据存款和储蓄系统,亦或然在zookeeper中贮存指向存储地点的指针。

临时节点(Ephemeral Nodes卡塔尔国 zookeeper还恐怕有不常节点的概念,这个节点的生命周期正视于创立它们的session是或不是活跃。session甘休时节点即被销毁。也鉴于这种特征,有的时候节点不容许有子节点。

队列节点——命名不唯生龙活虎 当您创设节点的时候,你会要求zookeeper提供风流倜傥组单调依次增加的计数来作为路线结尾。那几个计数对父znode是并世无两的。用%010d的格式——用0来填充的十位数(计数如此命名是为了轻易排序卡塔 尔(英语:State of Qatar)。比方"0000000001",注意流速计是有暗号整型,超过表示范围会溢出。

ZooKeeper状态结构(Stat Structure)

存在于znode中的状态结构,由以下顺序部分组成:

  • czxid - znode创立发生的zxid

  • mzxid - znode最终一次修改的zxid

  • ctime - znode成立的年华的相对化飞秒数

  • mtime - znode最终叁遍改良的相对化阿秒数

  • version - znode上多少的校正数

  • cversion - 子节点修正数

  • aversion - znode的ACL修改数

  • ephemeralOwner - 有时节点的主人的session id。如若此节点非有时节点,该值为0

  • dataLength - znode的数额长度

  • numChildren - znode子节罗列

ZooKeeper中的时间

zookeeper有过多记录时间的点子:

  • Zxid(ZooKeeper Transaction Id): zookeeper每一回产生改换都会扩展zxid,zxid越大,发生的年月越靠后。
  • Version numbers: 对znode的退换会追加版本号。版本号包蕴version (znode上数据的改进数), cversion (znode的子节点的改革数), aversion (znode上ACL(权限卡塔尔国的改过数)。
  • Ticks : 三个server构成zookeeper服务时,各种server用ticks来标识如情况反映、连接超时等事件。ticks time还直接反映了session超时的最小值(三次tick time卡塔 尔(英语:State of Qatar);假如客户端央求的异常的小session timeout低于那个小小的值,服务端会通告客商端最小超时置为这一个非常小值。
  • Real time : 除了历次znode创建或转移时候将时间戳记录到状态结构中外,zookeeper不应用时钟时间。

ZooKeeper Sessions

顾客端通过创办贰个handle和服务端建构session连接。生龙活虎旦创立完毕,handle就进去了CONNECTING状态,客商端库尝试连接后生可畏台构成zookeeper的server,届期踏向CONNECTED状态。平常处境下操作会介于那二种情况之间。 风流罗曼蒂克旦出现了不足复苏的怪诞:如session中止,鉴权退步或许选择直接结束handle,则handle会步入到CLOSED状态。下图是顾客端的情形调换图:

场地调换图

选拔在开立客商端session时必须提供豆蔻梢头串逗号分隔的主机号:端口号,每对主机端口号对应多少个ZooKeeper的 server(如:"127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"卡塔尔国,客商端库会尝试连接放肆风度翩翩台服务 器,若是老是战败或是客商端主动断开连接,顾客端会自动一而再一而再再而三与下意气风发台服务器连接,直到连接成功。

3.2.0本子新增加内容:  一个新的操作“chroot”能够加多在连接字符串的尾部,用来指明顾客端命令运营的根目录地址。相通unix的chroot命令,比方: "127.0.0.1:4545/app/a" or  "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002/app/a",表明顾客端会以"/app/a"为根目 录,全体门路都相对于根目录来安装,如"/foo/bar"的操作会运营在"/app/a/foo/bar"。 那意气风发特征在多顾客境况下充裕好用,各类使用zookeeper服务的顾客能够设置分化的根目录。

当客商端拿到和zookeeper服务连接的handle时,zookeeper会创立多少个Zookeeper  session分配给顾客端,用三个64-bit数字代表。黄金年代旦客商端连接了别的服务器,客商端必得把那几个session  id也视作连接握手的一片段发送。出于安全指标,zookeeper给session id成立叁个密码,任何zookeeper服务器都得以证实密码。 当顾客端创立session时密码和session id一同发送到客商带来,当顾客端重新连接其余服务器时,同一时间要发送密码和session id。

zookeeper客商端Curry有叁个创建zookeeper session的参数,叫做session  timeout(超时卡塔尔,用纳秒表示。客户端发送需要超时,服务端在逾期范围内响应顾客端。session超时最小为2个ticktime,最大为十八个ticktime。zookeeper客商端API能够协和超时时间。 当客商端和zookeeper服务器集群断开时,它会寻找session创设时的服务器列表。最后,当起码三个服务器和顾客端重新树立连 接,session或被重新置为"connected"状态(超时时间内再也连接卡塔尔,或被置为"expired(过期卡塔尔"状态(超出超时时间卡塔 尔(阿拉伯语:قطر‎。不提出在 断开连接后再次创制session。ZK客商端库会帮你再一次连接。非常地,大家将启示式学习情势植入顾客的库中来拍卖临近“羊群效应”等难点。唯有当您的 session过期时才再一次创制(托管的卡塔 尔(阿拉伯语:قطر‎。 session过期的动静转变图示例同过期session的watcher:

  1. 'connected' : session准确创建,顾客端和劳动集群正常连接

  2. .... 客商端从服务器集群断开

  3. 'disconnected' : 顾客端失去和服务器集群的一而再

  4. .... 过了意气风发段时间, 超越了集群判别session过期的超时时间, 顾客端并不曾察觉本身和服务集群断开了连年

  5. .... 又过生机勃勃段时间, 客商端复苏了同集群的网络连接

  6. 'expired' : 最后顾客端重新连上集群,然后被通知已经到期

另叁个session建即刻zookeeper须求的参数是默许watcher(监视者��。在客商端产生任何变动时,watcher都会时有产生文告。 比如客商端失去和服务器的连天、客商端session到期等。watcher暗许的发轫状态是disconnected。(也正是说任何情形改变事件都由 顾客端库发送到watcher卡塔尔国。当新建三个总是时,第贰个发送给watcher的事件经常见到正是session连接事件。

客户端发送央浼会使session保持活动状态。顾客端会发送ping包(译者注:心跳包卡塔 尔(阿拉伯语:قطر‎以维持session不会晚点。Ping包不仅仅让服务端 知道顾客端照旧活动,何况让顾客端也亮堂和服务端的连天未有行车制动器踏板。Ping包发送时间恰好能够判别是不是连接中断或是重新起动三个新的服务器连接。

和服务器的连天创建成功,当三个体协会办或异步操作实施后,有三种状态会让客商端库决断失去连接:

  1. 选用在session上号召了叁个已经失效的操作

  2. zookeeper服务器有三个等待中的操作时,顾客端会从这台服务器断开连接。即服务器有等待的异步调用。

3.2.0本子新扩张内容 —— SessionMovedException  三个顾客端无法查看的当中国和北美洲常SessionMovedException。这么些可怜爆发在服务端收到叁个伸手,那个供给的session已经在另八个服 务器上再一次连接。爆发这种状态的来由平时是客商端发送完诉求后,由于网络延时,顾客端超时再也和其余服务器构造建设连接,当央浼包达到第意气风发台服务器时,服务器 开掘session已经移除并关闭了和顾客端的接连几日。客商端日常不要理会这么些主题素材,可是有生龙活虎种意况值得注意,当两台湾游客商端采取事先存款和储蓄的session  id和密码试图创立同一个接二连三时,第豆蔻梢头台湾游顾客端重新创设连接,第二台则会被暂停。

更加的多详细的情况见请继续阅读下后生可畏页的美貌内容: http://www.linuxidc.com/Linux/2014-11/109661p2.htm

ag视讯直播 1

ZooKeeper状态结构(Stat Structure)

留存于znode中的状态结构,由以下顺序部分构成:

  • czxid - znode创制发生的zxid
  • mzxid - znode最终二回改正的zxid
  • ctime - znode创造的时日的绝对化皮秒数
  • mtime - znode最后三遍校订的绝对化飞秒数
  • version - znode上多少的改造数
  • cversion - 子节点改进数
  • aversion - znode的ACL修改数
  • ephemeralOwner - 有的时候节点的主人的session id。即使此节点非偶然节点,该值为0
  • dataLength - znode的数据长度
  • numChildren - znode子节列举

本文由乐虎游戏发布于计算机资讯,转载请注明出处:ZooKeeper开发手册中文翻译

关键词:

WebService入门之CXF教程

import javax.jws.WebService; 相关教程: CXF使用Tomcat发布WebService的简单例子http://www.linuxidc.com/Linux/2011-12/49309.htm (3)将解压...

详细>>

在CentOS上安装rvm

本文系统CentOS6.5 x64 如果是Ubuntu系统,先安装编译环境 Ruby On Rails是一个用Ruby语言写的开源Web框架,和J2EE,PHP等类似...

详细>>

mg电子游戏娱乐场Liunx PHP的GD库 增多 jpeg 文件的援救

GD Support enabled  代码如下 本文永久更新链接地址 :http://www.linuxidc.com/Linux/2014-11/109911.htm 很显然多了个 JPEG Support en...

详细>>

SVN冲突

多人并行开发操作svn时,经常会遇到各种冲突,包括文件冲突(textconflict)与树冲突(tree conflict)。 svn log -r 4:5; ...

详细>>