一直以来都没有系统的学习过分布式相关框架,打算先从Zookeeper入手,接下来1个多月,准备阅读学习下《从paxos到Zookeeper分布式一致性原理与实践》这本书,并在Zookeeper学习笔记系列中记录下学习的一些关键点,期间也会做部分Zk相关应用实践并做分享,也欢迎各位看官指出不足之处。
本文将从以下几点来介绍Zookekper及其基本原理:
- Zookeeper项目简介
- Zookeeper有哪些功能
- Zookeeper基本概念
- 什么是Zab协议
一、Zookeeper项目简介
Apache Zookeeper是由Apache Hadoop子项目发展而来,于2010年11月正式成为了Apache顶级项目。Zookeeper是一个为分布式应用提供高效、可靠的一致性服务的基础服务。
二、Zookeeper有哪些功能
- 配置管理
Zookeeper本身可以当做分布式文件系统使用,服务配置可以以节点目录形式存储于Zookeeper中,相关应用程序对节点目录进行监听,在配置发生变化时,收到通知,并对应用程序做修改 - 分布式锁
如:N台服务应用需要抢占AccountService中的锁,则所有机器同时在/projectName/AccountService下创建临时顺序节点,节点编号最小的获取锁,节点顺序大的依次监听前面一个节点,待前节点释放删除后重新抢锁,流程图如下