2021SC@SDUSC
目录
一、zookeeper项目背景
Zookeeper最早起源于雅虎研究院的一个研究小组。在当时,研究人员发现,在雅虎内部很多大型系统基本都需要依赖一个类似的系统来进行分布式协调,但是这些系统往往都存在分布式单点问题。所以,雅虎的开发人员就试图开发一个通用的无单点问题的分布式协调框架,以便让开发人员将精力集中在处理业务逻辑上。
关于“ZooKeeper”这个项目的名字,其实也有一段趣闻。在立项初期,考虑到之前内部很多项目都是使用动物的名字来命名的(例如著名的Pig项目),雅虎的工程师希望给这个项目也取一个动物的名字。时任研究院的首席科学家RaghuRamakrishnan开玩笑地说:“在这样下去,我们这儿就变成动物园了!”此话一出,大家纷纷表示就叫动物园管理员吧一一一因为各个以动物命名的分布式组件放在一起,雅虎的整个分布式系统看上去就像一个大型的动物园了,而Zookeeper正好要用来进行分布式环境的协调一一于是,Zookeeper的名字也就由此诞生了。
二、zookeeper简介
zookeeper是个针对大型分布式系统的高可用、高性能且具有一致性的开源协调服务,被广泛使用。它使得开发人员可以更加专注于应用本身的逻辑,而不是协同工作上。
zookeeper不适合用作海量数据的数据存储,对于需要存储海量应用数据的场景,建议使用数据库和分布式文件系统,所以设计分布式应用建议做到应用数据与协同数据的分离,使用zookeeper存储协同数据。
zookeeper有许多典型应用场景,如数据发布/订阅,负载均衡,命名服务,集群管理,分布式锁,分布式队列等。
zookeeper有很多成功的应用案例,如HBase(一个数据存储仓库),Kafka(一个基于发布-订阅模型的消息系统),dubbo(一个开源的分布式服务框架,其建议使用Zookeeper作为服务的注册中心)等。
三、zookeeper源码环境搭建
官网: Apache ZooKeeper
github: