没有合适的资源?快使用搜索试试~ 我知道了~
在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据。如果在创建znode时Flag设置为EPHEMERAL,那么当创建这个znode的节点和Zookeeper失去连接后,这个znode将不再存在在Zookeeper里,Zookeeper使用Watcher察觉事件信息。当客户端接收到事件信息,比如连接超时、节点数据改变、子节点改变,可以调用相应的行为来处理数据。Zookeeper的Wiki页面展示了如何使用Zookeeper来处理事件通知,队列,优先队列,锁,共享锁,可撤销的共享锁,两阶段提交。文档中红色字体的为重点内容,理解时序图以及基本原理,也有空开待补充的部分。希望对大家有所帮助。
资源推荐
资源详情
资源评论



















ZooKeeper学习
ZooKeeper的基本运转流程:的基本运转流程:
1、选举Leader。
2、同步数据。
3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。
4、Leader要具有最高的执行ID,类似root权限。
5、集群中大多数的机器得到响应并follow选出的Leader。
Zookeeper的特点:的特点:
在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据。如果在创建如果在创建
znode时时Flag设置为设置为EPHEMERAL,那么当创建这个那么当创建这个 znode的节点和的节点和Zookeeper失去连接后,这个失去连接后,这个znode将不再存将不再存
在在在在Zookeeper里,里, Zookeeper使用使用Watcher察觉事件信息察觉事件信息。当客户端接收到事件信息,比如连接超时、节点数据改
变、子节点改变,可以调用相应的行为来处理数据。Zookeeper的Wiki页面展示了如何使用Zookeeper来处理事件通知,
队列,优先队列,锁,共享锁,可撤销的共享锁,两阶段提交。
那么Zookeeper能做什么事情呢,简单的例子:假设我们有20个搜索引擎的服务器(每个负责总索引中的一部分的搜
索任务)和一个总服务器(负责向这20个搜索引擎的服务器发出搜索请求并合并结果集),一个备用的总服务器(负责当总服
务器宕机时替换总服务器),一个web的cgi(向总服务器发出搜索请求)。搜索引擎的服务器中的15个服务器提供搜索服
务,5个服务器正在生成索引。这20个搜索引擎的服务器经常要让正在提供搜索服务的服务器停止提供服务开始生成索
引,或生成索引的服务器已经把索引生成完成可以提供搜索服务了。使用Zookeeper可以保证总服务器自动感知有多少提
供搜索引擎的服务器并向这些服务器发出搜索请求,当总服务器宕机时自动启用备用的总服务器。
合理 管理服务器,以备使用 。
Zookeeper简单介绍简单介绍
一:一:分布式协调技术分布式协调技术
掌握ZooKeeper之前先来了解一种技术——分布式协调技术。那么什么是分布式协调技术?分布式协调技术 主要用来解决
分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。这时,有人可能会说
这个简单,写一个调 度算法就轻松解决了。说这句话的人,可能对分布式系统不是很了解,所以才会出现这种误解。如果这些进
程全部是跑在一台机上的话,相对来说确实就好办了,问 题就在于他是在一个分布式的环境下,这时问题又来了,那什么是分布
式呢?看一下这张图,如图1.1所示。

在这图中有三台机器,每台机器各跑一个应用程序。然后我们将这三台机器通过网络将其连接起来,构成一个系统来为用户
提供服务,对用户来说这个系统的架构不是透明的,他感觉不到我这个系统是一个什么样的架构。那么我们就可以把这种系统称
作一个分布式系统分布式系统。
那我们接下来再分析一下,在这个分布式系统中如何对进程进行调度,我假设在第一台机器上挂载了一个资源,然后这三个物理
分布的进程都要竞争这个资源,但我们又不希望他们同时进行访问,这时候我们就需要一个协调器协调器,来让他们有序的来访问这个
资源。这个协调器就是我们经常提到的那个锁锁,比如说"进程-1"在使用该资源的时候,会先去获得锁,"进程1"获得锁以后会对
该资源保持独占独占,这样其他进程就无法访问该资源,"进程1"用完该资源以后就将锁释放掉,让其他进程来获得锁,那么通过这
个锁机制,我们就能保证了分布式系统中多个进程能够有序的访问该临界资源。那么我们把这个分布式环境下的这个锁叫作分布分布
式锁式锁。这个分布式锁也就是我们分布式协调技术分布式协调技术 实现的核心内容,那么如何实现这个分布式呢,那就是我们后面要讲的内容。
注释:注释:
分布式协调技术就是让分布式架构的系统中的多个服务器有序的运行,避免造成脏数据
二:二:Zookeeper基本概念基本概念
ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务,它提供了一项基本服务:分布式锁服分布式锁服
务务。由于ZooKeeper的开源特性,后来我们的开发者在分布式锁的基础上,摸索了出了其他的使用方法:配置维护、组服务、配置维护、组服务、
分布式消息队列分布式消息队列、分布式通知分布式通知/协调协调等。
注意:注意: ZooKeeper性能上的特点决定了它能够用在大型的、分布式的系统当中。从可靠性方面来说,它并不会因性能上的特点决定了它能够用在大型的、分布式的系统当中。从可靠性方面来说,它并不会因
为一个节点的错误而崩溃。除此之外,它严格的序列访问控制意味着复杂的控制原语可以应用在客户端上。为一个节点的错误而崩溃。除此之外,它严格的序列访问控制意味着复杂的控制原语可以应用在客户端上。
ZooKeeper在一致性、可用性、容错性的保证,也是在一致性、可用性、容错性的保证,也是ZooKeeper的成功之处,它获得的一切成功都与它采用的的成功之处,它获得的一切成功都与它采用的
协议协议——Zab协议是密不可分的,这些内容将会在后面介绍。协议是密不可分的,这些内容将会在后面介绍。
前面提到了那么多的服务,比如分布式锁、配置维护、组服务等,那它们是如何实现的呢,我相信这才是大家关心的东西。
ZooKeeper在实现这些服务时,首先它设计一种新的数据结构数据结构——Znode,然后在该数据结构的基础上定义了一些原语原语,也就
是一些关于该数据结构的一些操作。有了这些数据结构和原语还不够,因为我们的ZooKeeper是工作在一个分布式的环境下,
我们的服务是通过消息以网络的形式发送给我们的分布式应用程序,所以还需要一个通知机制通知机制 ——Watcher机制。那么总结一
下,ZooKeeper所提供的服务主要是通过:
数据结构数据结构
+
原语原语
+watcher
机制机制
,三个部分来实现的。那么我就从这三个方面,给
大家介绍一下ZooKeeper。
三:三:ZooKeeper数据模型数据模型
1、、ZooKeeper数据模型数据模型Znode
ZooKeeper拥有一个层次的命名空间,这个和标准的文件系统非常相似,如下图3.1 所示。
从图中我们可以看出ZooKeeper的数据模型,在结构上和标准文件系统的非常相似,都是采用这种树形层次结
构,ZooKeeper树中的每个节点被称为—Znode。和文件系统的目录树一样,ZooKeeper树中的每个节点可以拥有子节点。但
也有不同不同 之处:
(1) 引用方式引用方式
剩余10页未读,继续阅读
资源评论


Onlytry-JustDo
- 粉丝: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 系统部软件工程师工作分析问卷.doc
- 项目管理总结汇报材料..ppt
- 网络远程教育的服务质量管理.ppt
- 养老保险交换库数据上报操作要求和软件介绍.pptx
- 会计从业人员网络继续教育培训平台常见问题解答.doc
- 将autocad图形拷贝到word的完美.doc-.docx
- 物联网应用技术专业人才培养方案.docx
- 2023年大学计算机基础知识点总结.doc
- 高端科技软件开发技术分析.docx
- 物流网路架构Logistics-Network-Configuration.ppt
- 网络营销的优缺swot分析—邵阳在线.doc
- 软考网络工程师下午试卷版最新整理修订.docx
- 双流机场网络会所项目评估报告样本.docx
- 基于PowerPC的嵌入式系统设计.docx
- 2023年10月自考电子商务英语试题和答案.doc
- 电线路铁塔基础软件工程设计中的应用与分析.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
