《企业级大数据平台构建:架构与实现》——2.2 Zookeeper
2.2 Zookeeper
2.2.1 概述
Zookeeper是一款分布式协同管理框架,是Google Chubby的开源实现,主要用来解决分布式应用中经常会遇到的一些问题。在很多场合交流的过程中,我发现大家对Zookeeper会有很多疑问。虽然我们在很多分布式系统中经常能够看到Zookeeper的身影,但是却说不出它到底是干什么的,它在分布式系统中扮演着什么样的角色。在很多Zookeeper的介绍中提到它是进行分布式系统协同管理的,那么分布式协同管理又到底是在管理些什么呢?
要回答上述的这些问题,我们首先要聊一聊实现一个分布式系统时会遇到的一些难题。既然是分布式系统,我们的程序进程自然会在多台服务器上协同进行工作,那么我们要解决的第一个问题是配置同步的问题。当配置文件有更新的时候,如何快速地将运行在多台服务器上的程序配置进行同步更新?Master/Slave架构是分布式系统中常见的一种集群模式,即通过一个Master节点统一管理协调多个Slave节点。那么这里就会面临第二个问题,Master节点如何感知Slave的存在?比如现在有多少个Slave连接到Master了?它们的状态是健康的还是异常的?当Master节点不可用的时候,通常需要从Slave节点中选举一个新的Master保持服务的正常运作,那么这个选举过程如何实现?
你看,我们只是随便聊了一会就列举出了这么多个令人头疼的问题。可想而知如果从零开始构建一个分布式的集群服务是多么困难。Zookeeper的作用就是帮助我们来解决这些琐碎的令人头疼的事情。
如图2-4所示,Zookeeper自身拥有高度的可靠性、可扩展性和容错性,能提供统一命名服务、分布式锁、分布式队列、选举、配置同步、心跳检查等功能。有了Zookeeper的帮助,开发实现一个分布式系统就会显得容易很多。像HBase、Kafka、SolrColud等众多知名框架都是使用Zookeeper实现分布式协同管理的。
图2-4 Zookeeper的逻辑架构图
Zoo keepr的逻辑架构也是一个典型的主从架构,它从众多Server服务中通过选举产生一个主控节点。
- 点赞
- 收藏
- 关注作者
评论(0)