Zookeeper(一)可以用来干什么?

 我来答
温屿17
2022-07-24 · TA获得超过1.2万个赞
知道小有建树答主
回答量:827
采纳率:0%
帮助的人:95.6万
展开全部

当我们在学习一项新技术的时候,首先应了解的就是它是用来干什么的。下面一段话是来自Zookeeper官网的一段解释:

ZooKeeper用于为分布式应用程序提供分布式并且开源的协调服务。它公开了一组简单的原语,分布式应用程序可以基于这些原语来实现用于同步,配置维护以及组和命名的更高级别的服务。

对于不了解Zookeeper的初学者来说,看完是不是很懵逼?所以本文将从程序员的角色出发,引导大家快速的去了解Zookeeper能够用来干什么。以此作为学习Zookeeper的入门,希望能够帮助到大家。

操作基于node组成的树形模型的方法很简单,无非就是创建node,删除node,监听node等简单的操作。

在介绍Zookeeper的主要用途前,我们先按不同维度将node对象划分为几种类型。

综上,node可分为四大类。持久无序、持久有序、临时无序、临时有序。

到此,我们不妨思考一下,基于node的树形结构以及四种不同的分类,可以实现什么用途呢?

思考倒计时 10......
思考倒计时 9........
思考倒计时 8........
思考倒计时 0........

有没有跟笔者一样,一个都没想出来的同学?没关系,接下来就简明说说Zookeeper到底可以用来干什么?

获得锁时,无非就是多个客户端,争着抢着去创建同一个node节点,谁第一个创建成功,谁就获得锁。

释放时,抢到锁的客户端就去删除node,然后通知其他需要创建锁的客户端,去再次争抢创建node节点。

正如我们之前介绍的一共有四种类型的node,那么创建时我们该选择哪种类型呢?

如果选择持久node,那当持有该node锁的客户端出现网络故障后,会产生什么问题呢?客户端是不是就无法主动删除node,导致锁无法正常释放了!所以我们应选用临时node,这样即时故障后,node锁也会随着会话结束而删除。

至于有序还是无序的node,则需要根据不同类型的锁来选择。例如:实现非公平独占锁,我们就选择无序;实现公平锁或共享锁,我们就选择有序。实现原理很简单,小伙伴们可以自己稍作思考,本文不再细说。

Master的选举过程其实类似node锁的创建,删除与监听。

临时node由客户端A创建,所以客户端A所在服务器当选为master。

前面介绍过,node组成了树形结构。类似操作系统中的文件路径,树形分支上的node名称拼接成的全路径,它必定是唯一的。因此我们可以使用node的全路径作为命名方式。

本文作为Zookeeper的入门篇,主要从Node对象的角度讲解了Zookeeper可以用来干么。当然Node的设计还有更多可具体深入的地方。Zookeeper也不仅只有Node,还有更多值得我们学习的知识,例如:Watcher机制,如何保障事务的顺序一致性、集群间数据的一致性,以及必须要知道的ZAB协议等等。

最后祝大家看完此文后能够有所收获!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
上海裔星科技有限公司
2024-12-27 广告
奥泰尔科技(深圳)有限公司是一家专注于无线宽带解决方案的高新科技创新型企业。公司成立于2006年,致力于设计、开发及市场推广自主研发的无线产品和技术,为运营商、无线互联网服务提供商和企业用户提供完整的室内和室外WiFi解决方案。奥泰尔拥有智... 点击进入详情页
本回答由上海裔星科技有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式