ZooKeeper的应用场景

潘威威 2013-05-31

根据ZK的官方文档,ZK在分布式的环境中提供协调服务可以提供几大保障:

1、同步性,客户端提交的更新会按照其提交的顺序执行。

2、原子性,更新要么成功要么失败,没有中间状态。

3、单一镜像,客户端不管连接哪一个ZK服务器,都将看到同一个结果。

4、可靠性,一个更新一旦提交,将持久化

5、timeliness,Theclientsviewofthesystemisguaranteedtobeup-to-datewithinacertaintimebound。这个特性,LZ翻译不来。。

我们可以总结一下ZK的应用场景:

1、分布式服务器发布中心。生产环境中,不同的系统都以发布服务的形式提供服务,有了ZK的支持,这个发布的形式可以变得更加简化,路由可以随时感知到不同服务的状态;动态的负载均衡;动态部署节点,随时部署更多的节点随时的加入到ZK的服务中;主备服的切换。

2、Master选举;分布式锁。ZK创建数据节点的API中有一个参数可以指定创建的方式,其中有一种方式可以在创建节点的同时在节点的名字后加上一串数字。Master选举和分布式锁都是要在集群中找到唯一的一个节点,节点都用这种方式请求ZK创建数据节点,然后比较找到数字最小的那个节点,就是唯一的节点,那么它就是Master/获得锁。

相关推荐