从Paxos到ZooKeeper (6-ZooKeeper的典型应用场景)
ZooKeeper的典型应用场景
ZooKeeper是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员可以使用它来进行分布式数据的发布与订阅。另一方面,通过对ZooKeeper中丰富的数据节点类型进行交叉使用,配合Watcher事件通知机制,可以非常方便地构建一系列分布式应用中都会涉及的核心功能,如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等。
典型应用场景及实现
数据发布/订阅
系统中需要使用一些通用的配置信息,例如机器列表信息、运行时的开关配置、数据库配置信息等。这些全局配置信息通常具备以下3个特性。
- 数据量通常比较小。
- 数据内容在运行时会发生动态变化。
- 集群中各机器共享,配置一致。
配置存储 可以直接存储到节点上
配置变更 注册一个数据变更的Watcher监听,一旦发生节点数据变更,所有订阅的客户端都能够获取到数据变更通知。
负载均衡
ZooKeeper来实现一种动态的DNS系统。
命名服务
全局唯一ID
分布式协调/通知
心跳检测 基于ZooKeeper的临时节点特性,可以让不同的机器都在ZooKeeper的一个指定节点下创建临时子节点,不同的机器之间可以根据这个临时节点来判断对应的客户端机器是否存活。
Master 选举
分布式锁
分布式队列
###Barrier:分布式屏障
转载请注明:转载自srzyhead的博客(https://srzyhead.github.io)