欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识

ResourceManager在整 劳务派遣信息管理系统 个hadoop中算是单点

点击: 次  来源:宝鼎软件 时间:2017-06-01

原文出处: 笨狐狸

zookeeper可谓是今朝利用最遍及的漫衍式组件了。其成果和职责单一,但却很是重要。

在现今这个年月,先容zookeeper的书和文章可谓不足为奇,本人鄙人,试图通过本身的领略来先容zookeeper,但愿通过一个初学者的视角来进修zookeeper,以期让人越发深入僻静稳的领略zookeeper。个中参考了不少教程和书,相关书目列在文末,也感激这些作者。

进修新的框架,先让我们搞清楚他是什么,这是它的内在。然后再先容它能做什么,这是它的外延,内在和外延配合来界说框架自己,会对框架有较为深刻的领略,在应用层面上知道如何用。其次再搞清楚zookeeper相关的理论基本,其目标是知道zookeeper是如何被发现的,是否可以或许警惕以便此后本身可以或许用到其他处所。最后搞清楚zookeeper中一些设计的道理和细节,目标也是搞清来龙去脉,学会“术”从而应用到此外处所。虽然了,加深的领略同样可以或许辅佐认识zookeeper自己,在利用时才知道为什么这样用。

首先,

zookeeper到底是什么?

zookeeper实际上是yahoo开拓的,用于漫衍式中一致性处理惩罚的框架。最初其作为研发Hadoop时的副产物。由于漫衍式系统中一致性处理惩罚较为坚苦,软件开发,其他的漫衍式系统没有须要 费劲反复造轮子,故随后的漫衍式系统中大量应用了zookeeper,劳务派遣管理系统,以至于zookeeper成为了各类漫衍式系统的基本组件,其职位之重要,可想而知。著名的hadoop、kafka、dubbo 都是基于zookeeper而构建。

要想领略zookeeper到底是做啥的,那首先得领略清楚,什么是一致性。

所谓的一致性,实际上就是环绕着“瞥见”来的。谁能瞥见?可否瞥见?什么时候瞥见?举个例子:淘宝靠山卖家,在靠山上架一件大促的商品,通过处事器A提交到主数据库,假设刚提交后立马就有用户去通过应用处事器B去从数据库查询该商品,就会呈现一个现象,卖家已经更新乐成了,然而买家却看不到;而颠末一段时间后,主数据库的数据同步到了从数据库,买家就能查到了。

假设卖家更新乐成之后买家立马就能看到卖家的更新,则称为强一致性;

假如卖家更新乐成后买家不能看到卖家更新的内容,则称为弱一致性;

而卖家更新乐成后,买家颠末一段时间最终能看到卖家的更新,则称为最终一致性。

更多的一致性例子可以参考文献2,内里罗列了10种一致性的例子,假如要给一致性下个界说,可以是漫衍式系统中状态或数据保持同步和一致。出格需要留意一致性跟事务的区别,可以记得进修数据库时出格强调ACID,故而满意ACID的数据库可以或许干事务,个中C等于一致性,因此,事务是一致性的一种特例,比起一致性更难告竣。

ResourceManager在整 劳务调派信息打点系统 个hadoop中算是单点

如何担保在漫衍式情况下数据的最终一致,这个就是zookeeper需要办理的问题。对付这些问题,有哪些挑战,zookeeper又是如何办理这些挑战的,下一篇文章将会主要涉及这个主题。

一些常见的办理一致性问题的方法:

  1. 查询重试赔偿。对付漫衍式应用中不确定的环境,先利用查询接口查询到当前状态,假如当前状态纷歧致则回收赔偿接口对状态举办重试推进,可能回滚接口对业务做回滚。典范的场景如银行跟付出宝之间的交互。付出宝发送一个转账请求到银行,如一直未收到响应,则可以通过银行的查询接口查询该笔生意业务的状态,如该笔生意业务对方未收到,则采纳赔偿的模式举办推送。
  2. 按时任务推送。对付上面的环境,有大概一次推送搞不定,于是需要2次,3次推送。不要猜疑,付出宝内最初掉单率很高,全靠后续不绝的按时任务推送增加乐成率。
  3. TCC。try-confirm-cancel。实际上是两阶段协议,第二阶段的可以实现提交操纵或是逆操纵。

zookeeper到底能做什么?

在业界的实际应用是什么?相识这些应用,会对zookeeper可以或许做的事有更直观的认识。

hadoop

鼻祖级应用,ResourceManager在整个hadoop中算是单点,为了实现其高可用,分为主备ResourceManager,zookeeper在个中打点整个ResourceManager。

可以想象,主备ResourceManager最初是主RM提供处事,假如一切安好,则zookeeper无用武之地。然而,总归会呈现主RM提供不了处事的环境。于是会呈现主备切换的环境,而zookeeper正是为主备切换保驾护航。

先来推理一下,主备切换会呈现什么问题。传统的主备切换,可以让主备之间维持心跳毗连,一旦备机发明主机心跳检测不到了,则本身切换为主机,本来的主机期待救助。这种方法有两个问题,一是由于网络发抖,负载过大等问题,备机检测不到心跳并不能说明主机必然挂了,有大概一按时间后主机或网络规复,这时候主机并不知道备机已经切换为主机,2台主机相互争用,大概造成脑裂;二是假如一些数据会合在主机上面,则备机切换时由于同步延时势必会损失掉一部门的数据。