第五章 dubbo之zookeeper

Zookeeper用途场景

  • Zookeeper分布式服务框架是Apache Hadoop的一个子项目,主要是用来解决分布式应用中经常遇到的一些数据管理问题;
  • 如:集群管理、统一命名服务、分布式配置管理,分布式消息队列、分布式锁、分布式通知协调等;
  • 越来越多的分布式计算开始强依赖ZK,比如Storm、Hbase;
  • Zookeeper对分布式开发带来很多便利,用ZK的独有特性巧妙地解决了很多问题;很多分布式技术用到Zookeeper或多或少特性,尤其是新生代分布式技术几乎都会依赖Zookeeper特性,如Hbase、火爆的Storm;

Zookeeper体系结构

Server端具有fast fail特性,非常健壮。无单点。不超过半数Server挂掉不影响提供服务。Master/slave主流模式。

Zookeeper数据结构

类似文件系统的目录树型结构,同Hadoop HDFS:

Zookeeper名字空间由节点znode构成,其组织方式类似于文件系统,其中各个节点相当于目录和文件,通过路径作为唯一标识。与文件系统不同的是,每个节点具有与之对应的数据内容,同时也可以具有子节点。

zookeeper用于存储协调数据,如状态、配置、位置等信息,每个节点存储的数据量很小,KB级别。

节点维护一个状态stat结构(包括数据变化的版本号、ACL变化,时间戳),以允许缓存验证与协调更新。每当节点数据内容改变,多一个版本号,类似HBase。客户端获取数据的同时也会获取数据版本号。节点的数据内容以原子方式读写。

节点具有一个访问控制列表(Access Control List - ACL)来约束访问操作,即具有权限控制。

Watches

Zookeeper对Node的增、删、改、查都可触发监听;

watch事件是一次性触发器,当watch监视的数据发生变化时,通知设置了该watch的client,即watcher将watch事件异步发送至观察者;

watch是一次性触发的并且在获取watch事件和设置新watch事件之间有延迟,所以不能可靠的观察到节点的每一次变化;

客户端监视一个节点,总是先获取watch事件,再发现节点的数据变化;

watch事件的顺序对应于zookeeper服务所见的数据更新的顺序;








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值