【分布式web中间件】ZooKeeper入门

内容框架:

Part1--Basic knowledgements

Part2--Znode

Part3--Basic Operation 

----------------------------------------------------------

Part1--Basic Knowledgements:

由Yahoo开发的开源分布式应用协同中间件,提供分布式应用的元数据存储/监控、配置管理、分布式同步、集群管理等功能。其架构如下图所示:


zookeeper提供了分布式应用的元数据存储功能,内置了以znode数据节点为基本存储单元的树状存储结构。该结构类似Linux的文件系统,拥有单一root节点,除root外其它节点均有自己的父节点,如下图所示:


Part2--Znode:

zookeeper中的znode是基本的数据存储单元,按数据存活时间TTL【time-to-live】来划分,可分为persistent-znode及ephemeral-znode;按节点名称是否包含序列号【sequence-number】可分为:sequential-znode及non-squential-znode。其中sequential-znode还可进一步细分为persistence_sequential-znode及ephemeral_sequential-znode。

persistence节点和ephemeral节点区别如下:


所有节点的类型都是在创建时指定的,节点名称与节点全路径对应。

persisence意思是持久的,这种节点TTL与zookeeper服务端状态相对应,并且对所有client而言是可见的;可通过delete命令移除该类节点;

ephemeral节点是会话级【session-level】其TTL依赖于创建该节点的client与server会话【session】状态,若session终止,该类节点消失。ephemeral节点不能拥有child节点。

sequential节点的名称后附有序列号数字【也可称为版本号version No.】,这种序列号由zookeeper创建该节点时由自增计数器自动生成。

znode节点名使用全路径标识作为标识,可以将其比作Redis的key-value。key对应节点名-节点全路径,value对应该节点存储的值。ZooKeeper的znode是为存储应用的元数据而设计的,故其znode节点存储的value为不超过1MB的byte数组。同Redis采用hash实现key的快速定位不同,zookeeper采用了Tree结构来实现这一需求。

Part3--Basic Operation :

对znode数据操作是zookeeper实现高级功能【如集群管理,命名服务,分布式同步,leader选举等】的基石。zookeeper数据操作包含以下命令:


很多命令与Redis数据操作相似。注意节点删除delete命令:若节点包含有子节点,对该节点delete操作是无法进行的。

zookeeper的read/write操作都是原子性的。

对znode进行read操作时,可以附带设置watch模式。watch事件会在节点的write操作时触发,并且只能响应一次触发操作。znode节点发生状态变更时,可能发生以下类型的watch事件:


分别对应:子节点更新/节点创建/节点数据更新/节点删除。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值