zookeeper是什么呢?
下文笔者讲述zookeeper的简介说明,如下所示:
zk简介
zookeeper是一个分布式的,开放源码的分布式应用程序协调服务 zookeeper是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件 它是一个为分布式应用提供一致性服务的软件 提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 zookeeper的目标就是封装好复杂易出错的关键服务 将简单易用的接口和性能高效、功能稳定的系统提供给用户。 zookeeper包含一个简单的原语集,提供Java和C的接口。 zookeeper代码版本中 提供了分布式独享锁、选举、队列的接口,代码在$zookeeper_home\src\recipes 其中分布锁和队列有Java和C两个版本
zookeeper的原理
zookeeper是以Fast Paxos算法为基础的 但是Paxos算法存在活锁的问题 所以zookeeper采用了一种Leader的机制成功解决了活锁的问题 所有的提议都由Leader发出,就可以避免活锁的异常 ZooKeeper的基本运行流程 1、选举Leader 2、同步数据 3、选举Leader过程中算法有很多,但要达到的选举标准是一致的 4、Leader要具有最高的执行ID,类似root权限 5、集群中大多数的机器得到响应并接受选出的Leader
zookeeper特点
zookeeper中 采用znode文件节点的方式管理“数据的存储” znode文件有临时节点和永久节点的概念 临时节点: 当连接断开后,此客户端操作的节点都会随着连接断开而消失 永久节点: 就是连接数据,会永久存储在zk的节点下
zookeeper应用示例说明
例: 拥有100个检索服务器 和一个总检索服务器及4个备用总检索服务器(当总机故障时,自动切换总机) zookeeper的功能: 用于可自动感知各检索服务器是否故障,自动查找合适的服务器
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。