很多人应该都有听说过zookeeper吧,那么究竟什么是zookeeper呢?它的原理又是怎样的?下面一起来了解一下吧。
ZooKeeper
ZooKeeper它是一个分布式的,开放源码的分布式应用程序协调服务,它是Google的Chubby一个开源的实现,也是Hbase和Hadoop的重要组件。
具体的来说,ZooKeeper是一个为分布式应用提供一致性服务的软件,ZooKeeper提供的功能主要包括了,域名服务、组服务、配置维护以及分布式同步等等。
ZooKeeper目标:
将复杂易出错的关键服务封装好,提供简单易用的接口以及性能高效、功能稳定的系统给用户。
ZooKeeper的代码版本当中,提供了选举、队列的接口、分布式独享锁,代码在$zookeeper_homesrc ecipes。
其中分布锁以及队列有C和Java2个版本,选举只有Java版本。
ZooKeeper包含一个简单的原语集,提供Java和C的接口。
ZooKeeper原理:
以Fast Paxos算法作为基础,所以总的来说,要是你想要弄懂ZooKeeper,那么你就必须对Fast Paxos算法有着很深入的了解,这个是必要的。
以下是ZooKeeper的运转流程(基本的运转流程):
一、选举Leader
二、同步数据
三、选举Leader过程中有很多的算法,可是达到的选举标准是一致的
四、Leader要具有最高的执行ID,类似root权限
五、集群中大部分的机器得到响应并接受选出的Leader
以上就是对于zookeeper以及zookeeper原理的一个简单的介绍了,大家可以详细的去了解以下。
你有想过往java架构师方向发展吗?想了解更多关于java架构师的内容,可以关注本站的java架构师专栏进行学习哦。