Zookeeper分布式协调系统使用场景分析

Zookeeper作为一款强大的分布式协调系统,可以帮助分布式系统完成一些难以实现却又十分重要的功能。Zookeeper适合以下3种应用场景,如下图所示:

《Zookeeper分布式协调系统使用场景分析》 使用场景

统一命名服务

Zookeeper的命名空间是一个类似于Linux文件系统的树形结构,它的每个Znode都拥有唯一的路径标识符。利用这个特性分布式系统,可以将Zookeeper当作统一命名服务来使用,类似Java中的JNDI。

心跳感知

利用Zookeeper中Znode临时节点类型的特性,可以实现心跳感知的功能。例如可以在Zookeeper上创建一个根目录,如/cluster1。利用Znode临时节点类型的特性,当某个集群服务进程启动的时候,可以在/cluster1上创建代表自己服务的临时节点,用以表示其会话状态。由于临时节点是会话绑定的,所以当节点存在的时候即代表状态正常,当进程失效的时候,节点客户端会话也会失效,这时临时节点也会被删除。这样,只要查看临时节点的存活状态便能一览集群状态了。

选举机制

Zookeeper能够保证当多个客户端同时创建一个相同路径节点的时候,只会有一个客户端成功。借用这个机制我们可以实现选举功能。因为在同一时刻,有且仅有一个客户端会成功创建节点,这个创建成功的客户端就是选举的胜者。

    原文作者:皮皮裴
    原文地址: https://www.jianshu.com/p/6c3c79c982f6
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞