ZooKeeper应用——解决分布式系统单点故障

栏目: 编程工具 · 发布时间: 6年前

内容简介:什么是分布式系统中的单点故障:通常分布式系统采用主从模式,就是一个主控机连接多个处理节点。主节点负责分发任务,从节点负责处理任务,当我们的主节点发生故障时,那么整个系统就都瘫痪了,那么我们把这种故障叫作单点故障。

1.单点故障问题

什么是分布式系统中的单点故障:通常分布式系统采用主从模式,就是一个主控机连接多个处理节点。主节点负责分发任务,从节点负责处理任务,当我们的主节点发生故障时,那么整个系统就都瘫痪了,那么我们把这种故障叫作单点故障。

传统方式是采用一个备用节点,这个备用节点定期给当前主节点发送ping包,主节点收到ping包以后向备用节点发送回复Ack ,当备用节点收到回复的时候就会认为当前主节点还活着,让他继续提供服务。如下图所示:

ZooKeeper应用——解决分布式系统单点故障

但是这种方式就是有一个隐患,就是网络问题 ,来看一网络问题会造成什么后果。

ZooKeeper应用——解决分布式系统单点故障

也就是说 我们的主节点的并没有挂,只是 在回复的时候网络发生故障,这样我们的备用节点同样收不到回复,就会认为主节点挂了 然后备用节点将他的Master实例启动起来,这样我们的分布式系统当中就有了两个主节点也就是---双Master , 出现双Master以后我们的从节点就会将它所做的事一部分汇报给了主节点,一部分汇报给了备用节点,这样服务就全乱了。 为了防止出现这种情况,我们引入了 ZooKeeper,它虽然不能避免网络故障,但它能够保证每时每刻只有一个Master。

2.ZooKeeper解决方案

在引入了Zookeeper以后,我们启动了两个主节点, "主节点-A"和"主节点-B"他们启动以后,都向ZooKeeper去注册一个节点 我们 假设"主节点-A"锁注册地节点是"master-00001","主节点-B"注册的节点是"master-00002", 注册完以后进行选举,编号最小的节点将在选举中获胜获得锁成为主节点 ,也就是我们的"主节点-A"将会获得锁成为主节点,然后"主节点-B"将被阻塞成为一个备用节点。那么,用这种方式就完成了对两个Master进程的调度。

ZooKeeper应用——解决分布式系统单点故障
如果"主节点-A"挂了,这时候他所注册的节点将被自动删除, ZooKeeper会自动感知节点的变化 ,然后再次发出选举,这时候"主节点-B"将在选举中获胜,替代"主节点-A"成为主节点。


ZooKeeper应用——解决分布式系统单点故障

3.Master 恢复


ZooKeeper应用——解决分布式系统单点故障
如果主节点恢复了,他会再次向ZooKeeper注册一个节点,这时候他注册的节点将会是 "master-00003" ZooKeeper会感知节点的变化再次发动选举 ,这时候"主节点-B"在选举中会再次获胜继续担任"主节点","主节点-A"会担任备用节点。


以上所述就是小编给大家介绍的《ZooKeeper应用——解决分布式系统单点故障》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Designer Idea

Web Designer Idea

梁景红 / 电子工业出版社 / 2006年 / ¥55.00

这是一本以“目的、信息、设计、创意”作为根脉的关于网页视觉的书籍,畅谈的话题从策划到编辑再到设计,从而讨论“我们要建立怎样的站点,并以何种形式完成它”的问题。 全书共分四个部分,分别是网站建设目的,网站信息内容,页面形式设计,网页创作构思。 四部分有机地结合,形成一个统一的整体。“目的”部分以建设网站的目的为主,带领设计师从建站目的的角度,探讨如何抓住首要问题;如何建立网站雏形;如何打开狭隘的、局......一起来看看 《Web Designer Idea》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试