ZooKeeper实战

在学习技术的过程中,我发现程序的版本一直在变,每个人的情况也不一样,在参考网上的教程的时候,都或多或少有这样或者那样的问题,在学习和实践之后发现,最好的学习教程就是Apache的官网,最好的学习方式就是动手操作并总结,下面就按照这种学习方式来总结一下如何“真真切切”地掌握ZooKeeper。(原谅我的调皮,使用了真真切切这个词。但我就是这种感觉,很多组件就是学怎么搭建,然后怎么用,别的什么都不懂,感觉特别不真实 _

打开官网 http://zookeeper.apache.org

Paste_Image.png

Getting Started
从官网的文档开始学起,点击learn about打开documentation,点击Getting Started,如下图所示(如果打开之后跟下图有所不同,就以打开的为主,这里主要是示范如何使用官方的文档)。

Documentation

1.单机模式(Standalone Operation)
下载zookeeper(下简称zk)之后解压到合适(如果只是测试zk的话,解压到哪里都无所谓,但如果有后续其他组件的学习,对用户和目录的选择都是有影响的)的目录,在conf目录下新建zoo.cfg文件,加入上图中的三个参数,其中要注意的是dataDir指向的目录要事先存在,然后在bin目录下使用zkServer.sh start命令启动zk。

进入命令行客户端,测试命令:


Client

命令行客户端使用完之后,可以使用Java客户端,这就涉及到编程,以及使用命令对应的API了。


Programming

打开Programmer's Guide

Programmer's Guide
Paste_Image.png

zk的数据模型
ZooKeeper包含一个分层次的命名空间,很像分布式的文件系统. 唯一的不同是除了包含子节点外,命名空间的每个节点还可以关联数据。就像一个扩展的文件系统一样, 文件也可以是目录.。节点的路径(path)总是规范的斜线分隔的绝对路径;绝没有相对路径.。任意的unicode字符都可以做路径名, 除了一些限制。

Paste_Image.png

znode节点
ZooKeeper树中的每一个节点都被称为znode. Znode维护一个stat数据结构, 包含数据变动的版本值, acl变动等(version numbers for data changes, acl changes)。 stat数据结构还包含时间戳(timestamp)。 版本和时间戳可以允许ZooKeeper校验缓存和协同更新。每次znode的数据改变,版本号都会增加。

Note: 在分布式应用工程学上,单词node 可以指一个通用的主机,服务器, 集群中的一员, 一个客户端进程等。 而在ZooKeeper文档中,znode指数据节点,Server指提供ZooKeeper服务器的机器; quorum peers 指ZooKeeper集群中的服务器; client 指任何使用ZooKeeper的主机或者进程.

Znode是程序访问的主要对象,它们有以下几个特征值得一说。

Paste_Image.png
  • 监视Watches
  • 数据访问Data Access
  • 临时节点Ephemeral Nodes
  • 顺序节点Sequence Nodes -- Unique Naming

从单机模式直观的了解zk,使用命令行客户端敲几个命令,大概了解了解。然后配置集群,读API,用eclipse开发JAVA客户端,使用API做几个demo。在弄清了常用的API之后,就找几个具体的场景应用zk做几个实战的小项目。之后就可以反过来理解官网上的这段话:

What is ZooKeeper

这样才算是真切的学习了zookeeper。

关于在Windows上用eclipse开发,首先说一个小问题,貌似有不少人苦恼eclipse中文字体大小修改问题,默认的eclipse中文字体很小,和英文字体大小完全不在一个调子上,因为默认的eclipse juno中英文字体是Consolas,字体大小是10,但是大家会发现,如果代码中有中文,那中文的字体会比英文的字体小很多,明显的,默认的eclipse juno中英文字体比中文字体大很多,显得中文很模糊。
解决办法:先调到小5,再调到小四就正常了。
步骤如下:Window –> Preferences –> General –> Appearance –> Colors and Fonts,在“Colors and Fonts”中选择“Basic”–>”Text Font”,然后点“Edit”,把“大小”里面的值编辑成“小五”即可。然后再次调整到你想要的字号就会发现中英文一般大了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,056评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,842评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,938评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,296评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,292评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,413评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,824评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,493评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,686评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,502评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,553评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,281评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,820评论 3 305
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,873评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,109评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,699评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,257评论 2 341

推荐阅读更多精彩内容