Zab 是zookeeper的保证原子性的广播协议。
用来传播leader产生的状态改变。
http://www.cnblogs.com/tommyli/p/3766189.html
1.数据发布与订阅(配置中心)
发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据
发布到ZK节点上,供订阅者动态获取数据,实现配置信息的集中
式管理和动态更新。例如全局的配置信息,服务式服务框架的服务
地址列表等就非常适合使用。
应用中用到的一些配置信息放到ZK上进行集中管理。这类场景通
常是这样:应用在启动的时候会主动来获取一次配置,同时,在节
点上注册一个Watcher,这样一来,以后每次配置有更新的时候,
都会实时通知到订阅的客户端,从来达到获取最新配置信息的目
的。
分布式搜索服务中,索引的元信息和服务器集群机器的节点状态存
放在ZK的一些指定节点,供各个客户端订阅使用。
分布式日志收集系统。这个系统的核心工作是收集分布在不同机器
的日志。收集器通常是按照应用来分配收集任务单元,因此需要在
ZK上创建一个以应用名作为path的节点P,并将这个应用的所有机
器ip,以子节点的形式注册到节点P上,这样一来就能够实现机器
变动的时候,能够实时通知到收集器调整任务分配。
系统中有些信息需要动态获取,并且还会存在人工手动去修改这个
信息的发问。通常是暴露出接口,例如JMX接口,来获取一些运行
时的信息。引入ZK之后,就不用自己实现一套方案了,只要将这
些信息存放到指定的ZK节点上即可。
**注意**:在上面提到的应用场景中,有个默认前提是:数据量很
小,但是数据更新可能会比较快的场景。
2.负载均衡

3.命名服务(Naming Service)

4.分布式通知/协调

5.集群管理与Master选举



网友评论