ZooKeeper简介

ZooKeeper是一个开源的分布式协调服务,它的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。

Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。

在解决分布式数据一致性方面,ZooKeeper并没有直接采用Paxos算法,而是采用了一种被称为ZAB(ZooKeeper Atomic Broadcast)的一致性协议。

应用场景:

  1. 数据发布/订阅

    发布/订阅模式一般有两种实现,分别是推和拉,ZooKeeper采用推拉结合的方式:客户端向服务器注册自己需要关注的节点,一旦该节点的数据发生了变更,服务器就会向对应的客户端发送事件通知,客户端接收到这个通知之后,需要主动请求服务器获取最新的数据。

    例如,在集群规模大,配置信息变更频繁的系统中,可以使用ZooKeeper对系统的某些配置信息进行管理。我们可以将这些配置信息存储到ZooKeeper的一个节点中,集群中每台机器在启动的时候,首先会从该节点上读取配置信息,同时,客户端还需要在该节点上注册一个监听事件,一旦节点数据发生变更,所有订阅的客户端都可以获取到数据变更的通知,从而更新配置信息。

  2. 负载均衡

  3. 命名服务

  4. 分布式协调/通知

  5. 集群管理

  6. Master选举

  7. 分布式锁

  8. 分布式队列



你可能感兴趣的:(zookeeper)