`
uule
  • 浏览: 6352909 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

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

 
阅读更多

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"会担任备用节点。

 

 

 

 

 

  • 大小: 15.4 KB
  • 大小: 13.7 KB
  • 大小: 16.8 KB
  • 大小: 17.8 KB
  • 大小: 17.4 KB
分享到:
评论

相关推荐

    java面试——zookeeper面试专题.zip

    - 如何解决Zookeeper的单点故障问题? - 通过部署多台Zookeeper服务器组成集群,每个节点都参与到选举和数据同步,从而避免单点故障。 6. 面试准备建议 - 理解Zookeeper的数据模型和API,掌握创建、读取、更新和...

    PAXOS到ZOOKEEPER分布式一致性原理与实践带目录详细版

    通过学习《PAXOS到ZOOKEEPER分布式一致性原理与实践》,读者不仅可以理解分布式一致性问题的挑战和解决方案,还能获得实际操作ZooKeeper的经验,为构建可靠、高性能的分布式系统打下坚实的基础。该书的详细目录将...

    Hadoop分布式文件系统——翻译

    - **数据均衡**:通过自动平衡各个DataNode上的数据负载,避免单点过载问题。 #### 4. 实践经验分享 - **在Yahoo!的应用**:HDFS在Yahoo!的应用案例中表现出了强大的数据存储和处理能力。截至当时,Yahoo!的Hadoop...

    从PAXOS到ZOOKEEPER分布式一致性原理与实践

    《从PAXOS到ZOOKEEPER分布式一致性原理与实践》这本书深入探讨了分布式系统中的一个重要议题——一致性。一致性是确保分布式系统中各个节点数据同步的关键,它在高可用、高性能的分布式服务中起着至关重要的作用。...

    分布式系统

    在“分布式系统——原理与范例”这本书的第三版中,作者深入探讨了这一领域的核心概念、设计模式以及实际应用案例。下面我们将详细阐述分布式系统的相关知识点。 1. **分布式系统定义**:分布式系统由多台物理或...

    Java【分布式】学习笔记01分布式Java应用

    5. **CAP理论**:描述了分布式系统中的三个关键属性——一致性(Consistency)、可用性(Availability)和分区容忍性(Partition tolerance),以及它们之间的权衡关系。 6. **最终一致性**:在分布式系统中,数据...

    分布式协调工具-ZooKeeper实现动态负载均衡

    Zookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,...

    zookeeper.docx教程

    **Zookeeper**是一款开源的分布式协调服务框架,主要用于解决分布式系统中的数据一致性问题。它通过提供一系列的基础功能(如配置维护、命名服务、集群管理等),简化了分布式系统的开发工作。 #### 二、Zookeeper...

    PyPI 官网下载 | homeassistant-0.86.0b0.tar.gz

    通过分布式部署,用户可以将不同的功能分散到不同的硬件上,优化性能并降低单点故障的风险。 "云原生"(Cloud Native)是指在云环境中设计和构建的应用程序,它们充分利用了云计算的优势,如弹性扩展、自动化运维和...

    zk的知识点和其他常见问题.zip

    Zookeeper,作为一个分布式协调服务,是Apache Hadoop项目的重要组件,被广泛应用于大数据、云计算等领域的分布式系统中。它提供了一种高效且可靠的分布式一致性服务,帮助解决分布式环境下的命名服务、配置管理、...

    ZooKeeper面试题(2022最新版)-重点.docx

    ### ZooKeeper核心知识点详解 #### 1. ZooKeeper是什么? ZooKeeper是一个开源的分布式协调服务,它通过封装复杂易出错的关键服务,为用户提供简单易用的接口和高性能、功能稳定的服务。ZooKeeper主要服务于分布式...

    PyPI 官网下载 | lotusdb-0.0.9.tar.gz

    在云原生架构中,分布式数据库是解决海量数据存储和处理问题的关键组件,能够将数据分布在多个服务器上,提高读写性能,同时降低单点故障的风险。 Python库在云原生环境中扮演着重要角色,因为Python以其易读性、...

    注册管理(zk基本运用)

    此外,Zookeeper的单点故障问题也需要关注,虽然可以通过集群部署来解决,但在高并发场景下,运维复杂度会相应提高。 总结,Zookeeper在分布式系统中的服务注册与发现扮演着关键角色,zkspringwf项目为我们提供了一...

    云计算的分布式存储系统是什么

    这样一来,每个服务器都可以独立地进行数据处理工作,无需依赖于中心节点,有效地避免了单点故障问题。此外,这样的设计还使得系统的扩展变得非常容易——只需简单地添加更多的服务器节点即可实现性能和容量的增长。...

    PyPI 官网下载 | coeus-test-appium-0.1.5.tar.gz

    Coeus Test Appium库可能设计成可扩展的,能在分布式环境中运行,这样可以处理更大的负载,提高测试效率,并降低单点故障的风险。通过利用分布式系统的特性,开发者可以在多台机器上并行执行测试,大大缩短整体测试...

    基于spring-cloud系列整合的分布式项目的例子zip

    本项目实例——"基于spring-cloud系列整合的分布式项目的例子zip",旨在全面展示Spring Cloud在构建监控管理、配置中心、注册中心、分布式锁、分布式事务、多数据源、工作流、单点登录、OAuth2授权、接口文档、路由...

    ZooInspector.zip

    在深入探讨ZooInspector的知识点之前,我们先简单了解一下Zookeeper——这是一个分布式协调服务,广泛应用于分布式系统中的命名服务、配置管理、集群管理等多个场景。 **Zookeeper的核心概念** 1. **节点(Znode)...

    【HDFS篇11】HA高可用1

    总的来说,HDFS HA通过Active/Standby NameNode的配置、ZooKeeper的协调以及ZKFC的监控,实现了NameNode的高可用性,有效避免了单点故障带来的风险,提高了整个HDFS集群的服务稳定性。这对于大型分布式系统而言,是...

    妳那伊抹微笑_云计算之Hadoop-2.2.0+Hbaase-0.96.2 +Hive-0.13.1完全分布式环境整合安装文档V1.0.0.docx

    在文档中提到的HA(High Availability)方式,意味着Hadoop被配置为高可用模式,确保NameNode的冗余,避免单点故障。 接着,HBase-0.96.2是一个基于Apache Hadoop的数据存储系统,它构建在HDFS之上,提供了一个...

    PyPI 官网下载 | pmake-1.0.7.tar.gz

    在大型项目中,这样的功能非常关键,因为它能有效提高构建效率,同时降低单点故障的风险。 “云原生”(Cloud Native)是一个现代软件开发理念,强调利用容器化、微服务、持续交付和声明式API等技术,构建可移植、...

Global site tag (gtag.js) - Google Analytics