标签:观察者 获取数据 分布式消息 tor 事件 hadoop 客户 super 协调器
Zookeeper分布式服务框架是Apache Hadoop的一个子项目,主要是用来解决分布式应用经常遇到的一些数据管理问题。如:集群管理,统一命名服务,分布式配置管理,分布式消息队列,分布式说,分布式通知协调等。
越来越多的分布式开始依赖ZK,比如Storm,Hbase等
Zookeeper对分布式开发带来很多遍历,用ZK独有的特性巧妙解决很多难题,很多分布式技术用到Zookeeper特性,如Hbase,火爆的Storm。
数据模型、节点
类似文件系统的目录型结构,同hadoop、HDFS:
ZK对Node的增删改查都可以除法监听
watch事件是一次性触发器,当watch监视的数据发生变化时,通知设置了该watch的client,即watcher
watch事件异步发送至观察者
watch是一次性除法的并且在获取watch事件和设置新watch之间有延迟,所以不能可靠的观察到节点的每一次变化
客户端监视一个节点,先获取watch事件,再发现节点的数据变化
watch事件顺序对应于Zookeeper服务所见数据更新的顺序
Storm集群:Zookeeper作为nimbus(mastter)和supervisor(slave)的中间枢纽,保存Storm集群和作业的所有信息,并负责nimbus和supervisor的全部通信,Fast fill、
Hbase集群:Zookeeper作为协调器,为HBase提供了稳定服务和fall over机制。
Storm应用开发、Storm集群监控
MapReduce应用开发
Hbase应用开发
分布式配置管理
发布与订阅所谓的配置管理,就是把数据发布到zk节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新,例如全局配置信息,地址列表等就会非常适合使用。
Name Service
这个主要是作为分布式命名服务,通过调用zk的create node api,能够很容易常见一个全局唯一的path,这个path可以作为一个名称。
分布式通知协调
zookeeper中特有的watcher注册与异步通知机制,能够很好地实现分布式环境下不同系统之间的通知与协调,实现对数据变更的实时处理。
使用方法 通常是不同系统都对ZK上的znode进行watch,监听znode的变化,其中一个系统update了znode,另一个系统受到通知,并协同进行处理
分布式锁
分布式锁,这个主要得益于Zookeeper为我们保证了数据的强一致性
锁服务可以分为两类,一个是保持独占,另一个是控制时序
集群管理
Hbase Master选举是经典的使用场景
分布式队列
一种是常规的先进先出队列,另一种是等到队列成员狙击之后按统一按序执行,对于第二种先进先出队列,增加分布式锁服务控制时序场景
标签:观察者 获取数据 分布式消息 tor 事件 hadoop 客户 super 协调器
原文地址:https://www.cnblogs.com/littlepage/p/10808285.html