给公司组内成员做的zookeeper的分享,研究了两三个星期,包含zookeeper的各个方面,由浅入深,没有探讨一致性算法,但对zookeeper的理解和使用、常用应用做了详细的整理和总结。
一. 定义
官方定义:
Zookeeper是分布式系统的高性能协调服务。
它将公共服务:像 命名、配置管理、同步、和 群组服务 暴露在一个简单的接口里。
你可以使用现成的Zookeeper去实现 共识、群组管理、领导人选举和 presence protocols(存在,出席协议)。
你没有必要从头开始实现它们,并且可以在它的基础之上建立自己的特定的需求。
共识:
就是在一个进程提出了一个值应当是什么后,每个进程都提出自己的提议,最终通过共识算法,使所有进程对这个值达成一致意见。
自己理解
zookeeper是 znode组成的文件系统 + watcher监听器 + 一致性协议zab协议
为什么要使用zookeeper:
如果应用程序自己去实现这些服务都不可避免的引入大量的工作。
zookeeper将协调服务与系统服务解耦,降低复杂度。