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"会担任备用节点。
相关推荐
基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统 基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统 基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统 基于SpringBoot+...
SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统.zipSpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统.zipSpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统.zipSpringBoot+Zookeeper+Dubbo...
基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统.zip基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统.zip基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统.zip基于SpringBoot...
《Paxos到Zookeeper——分布式一致性原理与实践》,学习zookeeper必备。该资源仅供大家了解书的内容,如果真有兴趣深入学习,建议购买正版书籍。
分布式服务框架 Zookeeper -- 管理分布式环境中的数据
#资源达人分享计划#
该项目是自己独自搭建的springboot+dubbo+zookeeper项目,仅供参考学习使用。
Zookeeper作为分布式系统中的关键组件,提供了高效且可靠的分布式协调服务。本文深入探讨了Zookeeper底层实现的核心——ZAB协议(Zookeeper Atomic Broadcast)。ZAB协议,作为Paxos算法的简化实现,不仅支持崩溃...
zookeeper安装与配置 ZooKeeper 是一个分布式协调服务,常用于分布式系统中。以下是 ZooKeeper 的基本安装和配置步骤。请注意,这里提供的是一个基本的指南,具体的步骤可能会根据你的操作系统和需求而有所不同。
Zookeeper伪分布式集群搭建描述伪分布式集群就是在一台机器部署多个zk应用,部署之前服务器需要有jdk环境 java -version可以显示相关java
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现。 下载解压后,将.gz结尾的zookeeper 包上传到 Linux 服务器,就可以开始操作了。
hadoop-2.7.5,hbase1.2.6.zookeeper.3.3.6完全分布式安装教程 hadoop-2.7.5,hbase1.2.6.zookeeper.3.3.6完全分布式安装教程 hadoop-2.7.5,hbase1.2.6.zookeeper.3.3.6完全分布式安装教程
zookeeper基础进阶&分布式集群部署,xmind文件,包含zk基础知识,linux环境下分布式集群安装部署,以及进阶内容
为了更快速的学习分布式开发,我们需要使用zookeeper伪分布式快速搭建模拟分布式环境
Hadoop——分布式文件管理系统HDFS 2. Hadoop——HDFS的Shell操作 3. Hadoop——HDFS的Java API操作 4. Hadoop——分布式计算框架MapReduce 5. Hadoop——MapReduce案例 6. Hadoop——资源调度器...