流行的应用场景

    1、分布式应用配置管理

    1. 发布与订阅即所谓的配置管理,顾名思义就是将数据发布到zk节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新。例如全局的配置信息,地址列表等就非常适合使用。

    2、Name Service

    1. 这个主要是作为分布式命名服务,通过调用zkcreate node api,能够很容易创建一个全局唯一的path,这个path就可以作为一个名称。序列化节点

    3、分布式通知/协调

    1. ZooKeeper中特有watcher注册与异步通知机制,能够很好的实现分布式环境下不同系统之间的通知与协调,实现对数据变更的实时处理。
    2. 使用方法:通常是不同系统都对ZK上同一个znode进行watch,监听znode的变化(包括znode本身内容及子节点的),其中一个系统update znode,那么另一个系统能够收到通知,并作出相应处理。

    3、分布式锁

    1. 分布式锁,这个主要得益于ZooKeeper为我们保证了数据的强一致性,zk集群中任意节点(一个zk server)上的相同znode的数据是一定是相同的。
    2. 锁服务可以分为两类,一个是保持独占,另一个是控制时序。

    4、集群管理

    1. Hbase Master选举则是zookeeper经典的使用场景;
    2. Storm集群管理

    5、分布式队列

    1. 队列方面,一种是常规的先进先出队列,另一种是要等到队列成员聚齐之后的才统一按序执行。对于第二种先进先出队列,增加分布式锁服务以控制时序场景