博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ZooKeeper
阅读量:6331 次
发布时间:2019-06-22

本文共 1152 字,大约阅读时间需要 3 分钟。

什么是ZooKeeper

官网给于解释是:

image
centralized service 集群服务
maintaining 维护

意思就是ZooKeeper是一个为 维护配置信息,域名维护, 提供分布式同步以及集体服务的集群服务系统. 所有的这些服务通常被用于其他分布式应用上.每次他们用于实现 大量关于 修复不可避免的bugs和线程竞争 的工作.由于实现这些服务的困难,最初的应用程序通常会对它们进行节省,这使得它们在出现变化和难以管理时变得脆弱.即使在正确的情况下,这些服务的不同实现在应用程序部署时也会导致管理复杂性。

百度给出的解释是:

image

原理

ZooKeeper是以Fast Paxos算法为基础的,paxos算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos作了一些优化,通过选举产生一个leader,只有leader才能提交propose,具体算法可见Fast Paxos。因此,要想弄懂ZooKeeper首先得对Fast Paxos有所了解。

Zookeeper 的基本运转流程

1.选举leader
2.同步数据
3.选举leader过程中算法有很多,但要达到的选举标准是一致的.
4.leader要具有最好的执行权
5.集群中大多数的及其得到响应并接受选出的leader

架构

image
功能
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一域名服务、状态同步服务、集群管理、分布式应用配置项的管理等
数据结构
image
Zookeeper这种数据结构有如下这些特点:

1.每个子目录下如NameService都被称作znode这个znode是被它所在的路径唯一标识,如Server1这个znode的表示为NameService/server1

2.znode可以有子节点目录,并且znode可以存储数据,注意EPHEMERAL
3.znode是有版本的,每个znode中存储的数据可以有多个版本,也就是一个访问路径可以存储多份数据
4.znode可以使临时节点,一旦创建这个znode的客户端与服务器失去联系,这个znode也将自动删除,Zookeeper的客户端和服务端通信采用长连接方式,每个客户端和服务器通过心跳来保持连接,这个链接状态称为session如果znode是临时节点,这个session失效.znode也就删除
znode可以被临时控制,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个是Zookeeper的核心特性,Zookeeper的很多功能是居于这个特性实现的

转载地址:http://heboa.baihongyu.com/

你可能感兴趣的文章
字符串与整数之间的转换
查看>>
断点传输HTTP和URL协议
查看>>
redis 数据类型详解 以及 redis适用场景场合
查看>>
mysql服务器的主从配置
查看>>
巧用AJAX技术,通过updatePanel控件实现局部刷新
查看>>
20140420技术交流活动总结
查看>>
SaltStack配置salt-api
查看>>
各种情况下block的类型
查看>>
ThinkPHP 3.2.x 集成极光推送指北
查看>>
MYSQL 表情评论存储(emoji)
查看>>
js作用域链
查看>>
java中如何选择Collection Class--java线程(第3版)
查看>>
为运维人员插上腾飞更远的翅膀!
查看>>
Word 2003中编辑标记与格式标记大讨论
查看>>
从国内向海外转移域名经验谈
查看>>
浅谈apache与tomact的整合
查看>>
SQL Server vNext CTP1 on Linux
查看>>
1-为 Lync Server 2010 准备 Active Directory 域服务
查看>>
SELinux安全
查看>>
NetBackup下ORACLE恢复测试方案实例解析
查看>>