前言
本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系
正文
ZooKeeper 的起源
ZooKeeper 起源于雅虎研究院的一个研究小组。
当时研究人员发现,在雅虎内部很多大型系统基本都需要依赖一个类似的系统来进行分布式协调,但是这些系统往往都存在分布式单点问题。
所谓单点问题,即在整个分布式系统中,如果某个独立功能的程序或角色只运行在某一台服务器上时,这个节点就被称为单点。
一旦这台服务器宕机,整个分布式系统将无法正常运行,这种现象被称为单点故障。
所以,雅虎的开发人员试图开发一个通用的无单点问题的分布式协调框架,以便让开发人员将精力集中在处理业务逻辑上。
而 ZooKeeper 正好是要用来进行分布式服务的协调。
ZooKeeper 是什么?
ZooKeeper 是一个分布式协调服务的开源框架,它是由 Google 的 Chubby 开源实现。
ZooKeeper 主要用来解决分布式集群中应用系统的一致性问题,如如何避免同时操作同一数据造成脏读的问题等。
ZooKeeper 本质上是一个分布式的小文件存储系统,提供基于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理, 从而用来维护和监控存储的数据的状态变化。
通过监控这些数据状态的变化,从而达到基于数据的集群管理。
提供如统一命名服务、分布式配置管理、分布式消息队列、分布式锁、分布式协调等功能。