1.单点故障问题

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

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

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

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

2.ZooKeeper解决方案

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

如果"主节点-A"挂了,这时候他所注册的节点将被自动删除, ZooKeeper会自动感知节点的变化,然后再次发出选举,这时候"主节点-B"将在选举中获胜,替代"主节点-A"成为主节点。

3.Master 恢复

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

ZooKeeper应用——解决分布式系统单点故障相关推荐

  1. 【分布式】Zookeeper在大型分布式系统中的应用

    一.前言 上一篇博文讲解了Zookeeper的典型应用场景,在大数据时代,各种分布式系统层出不穷,其中,有很多系统都直接或间接使用了Zookeeper,用来解决诸如配置管理.分布式通知/协调.集群管理 ...

  2. ZooKeeper:协调分布式系统入门指南

    ZooKeeper:协调分布式系统入门指南 ZooKeeper是一种用于分布式应用程序的高性能协调服务.它在一个简单的界面中公开了常用服务 - 例如命名,配置管理,同步和组服务 - 因此您不必从头开始 ...

  3. 如何解决分布式系统数据事务一致性问题(HBase加Solr)

    如何解决分布式系统数据事务一致性问题(HBase加Solr) 参考文章: (1)如何解决分布式系统数据事务一致性问题(HBase加Solr) (2)https://www.cnblogs.com/wg ...

  4. zookeeper和k8s_Kubernetes(k8s)运行ZooKeeper,一个分布式系统协调器

    运行ZooKeeper,一个分布式系统协调器 目标 在本教程之后,您将了解以下内容. 如何使用StatefulSet部署ZooKeeper集合. 如何使用ConfigMaps一致地配置集合. 如何在集 ...

  5. 如何解决分布式系统数据事务一致性问题

    如何解决分布式系统数据事务一致性问题 (HBase加Solr) 摘要:对于所有的分布式系统,我想事务一致性问题是极其非常重要的问题,因为它直接影响到系统的可用性.本文以下所述所要解决的问题是:对于入H ...

  6. 《分布式服务架构:原理、设计与实战》第二章彻底解决分布式系统一致性的问题...

    2019独角兽企业重金招聘Python工程师标准>>> 1.什么是一致性 一致性指分布式服务化系统之间的弱一致性,包括应用系统的一致性和数据的一致性.无论是水平拆分还是垂直拆分,都解 ...

  7. Zookeeper分布式一致性原理(十):Zookeeper在大型分布式系统的应用

    1. Hadoop 在Hadoop中,ZooKeeper主要用于实现HA(High Availability),这部分逻辑主要集中在Hadoop Common的HA模块中,HDFS的NameNode与 ...

  8. 如何解决分布式系统中的“幽灵复现”?

    简介: "幽灵复现"的问题本质属于分布式系统的"第三态"问题,即在网络系统里面,对于一个请求都有三种返回结果:成功,失败,超时未知.对于超时未知,服务端对请求命 ...

  9. 如何解决分布式系统中的“幽灵复现”?-转载自 阿里技术 微信公众号

    阿里妹导读:"幽灵复现"的问题本质属于分布式系统的"第三态"问题,即在网络系统里面,对于一个请求都有三种返回结果:成功,失败,超时未知.对于超时未知,服务端对请 ...

最新文章

  1. xCode 开发快捷键
  2. MySQL 索引与优化
  3. Unity3d游戏开发之漫游场景的制作
  4. BZOJ3534:[SDOI2014]重建(矩阵树定理)
  5. 详解C++11智能指针
  6. JDBC事务和JTA事务的区别 --包含spring事务 声明式事务
  7. 封装属性_「Python基础学习」之封装大法
  8. django-orm的表操作.
  9. struts2 tag if NumberFormatException
  10. linux 自动开飞行模式,Android飞行模式灰显不能操作问题分解
  11. VideoPlayer取某一帧图片
  12. wav音频文件转换为sbc音频文件
  13. 计算机会计学试题,会计电算化模拟题及答案
  14. php plupload上传失败,PHP-plupload错误生成
  15. 工业数字化与新一代数字化系统设计平台----工业软件讲坛第一次讲座
  16. SpringBoot构建电商基础秒杀项目知识点总结(第3章)
  17. WordPress:自定义头像
  18. ZIGBEE中的CLust和端点等的关系
  19. MAC系统安装Wireshark网络抓包工具
  20. 从零开始学-倍福TC3_第一篇:Active Configration 按钮显示灰色

热门文章

  1. POI单元格合并(合并后边框空白修复)、自动列宽、水平居中、垂直居中、设置背景颜色、设置字体等常见问题
  2. Java ArrayList add()方法与示例
  3. 招投标过程---投标之述标 大杂烩
  4. 论文浅尝 | PAKDD2020 - 利用支持集中匹配信息的 few shot 事件分类方法
  5. 怎样设置html设置透视,用css实现透视效果
  6. 2020 计蒜客蓝桥杯省赛 B 组模拟赛(一)题解4.苹果
  7. IjkVideoView的视频宽高比怎么设置
  8. UNIX SIGTERM等信号意义
  9. T-SQL - 习题02_将数据表year|month|amount查询成year|m1|m2|m3|m4的样式
  10. IMT和北京大学微纳电子学研究院持续开展战略合作,三位优秀学生获2017年度MEMS专项奖学金