zk典型应用场景

数据发布/订阅

客户端向服务端注册自己需要关注的节点,一旦该节点数据发生变更,那么服务端就向相应的客户端发送Watcher事件通知,客户端接收到消息通知后,主动到服务端获取最新的数据

负载均衡

DDNS为例
zk典型应用场景
应用域名配置IP地址和端口号
应用从域名节点获取一份IP&端口配置,自行解析。同时注册一个数据变更Watcher监听,及时收到变更通知

命名服务

全局唯一ID生成
创建顺序节点,在API返回值中会返回这个节点的完整名字
zk典型应用场景

分布式协调/通知

集群管理

Master选举

利用zk的强一致性,能保证在分布式高并发情况下节点创建一定保证全局唯一性,即无法重复创建一个已经存在的数据节点。同时有多个客户端请求创建同一节点,最终一定只有一个客户端请求能创建成功

分布式锁

排他:同上
共享:Watcher

分布式队列

FIFO:全写共享锁模型
Barrier:getData()/getChildren()