一 ZooKeeper简介
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
二 Zookeeper 主要解决什么问题
在分布式多节点组成的集群环境中,所面临的三个常见的挑战。
第一种:集群管理。为了保证集群的高可用,每个节点都会创建一个数据副本,那么在这种情况下,要保证客户端访问集群中任意一个节点都要是最新的数据;
第二种:分布式锁,对于分布式系统来说,如何去保证共享资源的并发安全性,也是一个比较大的挑战,为了达到这样一个目的,我们必须使用一个跨进程的锁,也就是分布式锁来实现。
第三种:Master选举,在多个节点的集群中,为了去降低集群数据同步的复杂度,一般会将节点设置成两个角色,分别是Master和Slave。Master一般是负责数据的读写等事务性操作,而Slave只负责数据的读操作,如何去确定某个节点是 Master 还是 Salve,也是一件比较复杂的工作。
Zookeeper 的出现,主要是为了满足分布式环境中,以上三种常见的场景的需求。作为一个分布式的中间件而存在,它相当于一个分布式的开源的协调组件,协调和解决分布式系统中的各类问题。
三 Zookeeper分布式协调的基本原理
Zookeeper的基本原理是通过