- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Zookeeper简介
Zookeeper简介
什么是Zookeeper
设计目标
Zookeeper server组成
数据模型
常用方法
典型应用场景
指令汇总
Zookeeper简介
什么是Zookeeper
ZK是一个高效的分布式协调服务,它暴露了一些公用服务,比如命名/配置管理/同步控制/群组服务等。我们可以使用ZK来实现比如达成共识/集团管理/leader选举等。
Zookeeper简介
设计目标
简单:ZK中的namespace组织结构类似与标准的文件系统,通过这些共享的有层次的namespace来互相协调分布式中的多个进程,这些namespace由ZNodes组成,ZK数据被保存在内存中,这也意味着ZK将可以达到较高的吞吐量/较低的延迟。ZK的核心目标就是高性能,高可用,严格有序存取。高性能标志着ZK可以被使用在大规模分布式环境中,高可用标志着ZK避免单点故障,具有较强的容错能力;严格有序(strict ordering)意味着客户端可以实现复杂的同步。
Zookeeper简介
设计目标
复制:ZK的数据将会在ZK Cluster中的每台机器上协作复制(备份),构成ZK服务的机器必须能够互相感知对方。它们保持了一个内存视图状态(in-memory image of state),同时伴随这tnx log和snapshot的持久存储。只要大部分server有效,那么ZK 服务也是有效的。客户端只与一个zk server建立链接,client通过建立的TCP连接来进行请求/响应/获取事件/发送心跳等。如果此TCP连接失效,client将会尝试连接其他的ZK server。
Zookeeper简介
设计目标
全序性:对于每个update请求,ZK(leader)都会为其生成唯一的Zid来表示其事务的顺序,接下来的操作可以使用zid的顺序实现同步原语(队列)。
高效快速:ZK在“读主导”的应用中表现的非常的优秀。ZK应用可以运行在数台机器上,并且在read远大与write的场景中,是非常适合的,通常这个比例为10:1.
Zookeeper简介
Zookeeper server组成
ZK server根据其身份特性分为三种:leader,Follower,Observer,其中Follower和Observer又统称Learner(学习者)。
Leader:负责客户端的writer类型请求
Follower:负责客户端的reader类型请求,参与leader选举等
Observer:特殊的“Follower”,其可以接受客户端reader请求,但不参与选举。(扩容系统支撑能力,提高了读取速度。因为它不接受任何同步的写入请求,只负责与leader同步数据)
Zookeeper简介
数据模型
Zookeeper 会维护一个具有层次关系的数据结构,它非常类似于一个标准的文件系统
Zookeeper简介
数据模型
1、每个子目录项如 NameService 都被称作为 znode,这个 znode 是被它所在的路径唯一标识,如 Server1 这个 znode 的标识为 /NameService/Server1
2、znode 可以有子节点目录,并且每个 znode 可以存储数据,注意 EPHEMERAL 类型的目录节点不能有子节点目录
3、znode 是有版本的,每个 znode 中存储的数据可以有多个版本,也就是一个访问路径中可以存储多份数据
Zookeeper简介
数据模型
4、znode 可以是临时节点,一旦创建这个 znode 的客户端与服务器失去联系,这个 znode 也将自动删除,Zookeeper 的客户端和服务器通信采用长连接方式,每个客户端和服务器通过心跳来保持连接,这个连接状态称为 session,如果 znode 是临时节点,这个 session 失效,znode 也就删除了
5、znode 的目录名可以自动编号,如 App1 已经存在,再创建的话,将会自动命名为 App2
Zookeeper简介
数据模型
6、 znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个是 Zookeeper 的核心特性,Zookeeper 的很多功能都是基于这个特性实现的,后面在典型的应用场景中会有实例介绍
Zookeeper简介
常用方法
Zookeeper简介
常用方法
Zookeeper简介
典型应用场景
Zookeeper 从设计模式角度来看,是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,
文档评论(0)