ZooKeeper是一个高可用的分布式数据管理与系统协调框架。保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。
有人认为ZooKeeper之于分布式的意义正如同lex/yacc之于编译的意义。我们知道lex/yacc是一套强大的语法编译工具。使用lex/yacc可以很轻松的完成许多语法规则的编写。同样道理,Zookeeper作为一个分布式的数据管理和协调框架,没有它依然可以做分布式,但是有了它,你的分布式会更轻松。
本系列文章主要是从学习的角度对Zookeeper常用的场景进行实践,从而更好的理解和掌握Zookeeper。
下面是学习过程中收集到的一些资料
ZooKeeper典型应用场景
ZooKeeper入门到精通视频百度云盘地址,(个人认为要去掉“到精通”三个字,入门介绍还是不错的)。
Zookeeper安装和C语言API库指南
ZooKeeper常用命令
如果之前没有接触过ZooKeeper的话,建议还是先看看上面这些博客,有了大致的了解然后在来看这个系列的学习笔记。
网上的一些实践的代码通常都是Java的,本系列则是利用Zookeeper的C语言API完成的。
ZooKeeper典型应用场景中介绍了以下几种场景:
- 数据发布与订阅(配置中心)
- 负载均衡
- 命名服务(Naming Service)
- 分布式通知/协调
- 集群管理与Master选举
- 分布式锁
- 分布式队列
我们的目标就是将上面的场景都一一实践一遍。首先说明,涉及到的代码都是在学习Zookeeper的过程完成的,很多都非常简单,我希望能够通过一两百行的代码来简单而又直接的体会Zookeeper的使用。如果想要深入实现上面说到的每个场景,恐怕还有许多欠考虑的地方。
- ZooKeeper场景实践:(1)准备工作
- ZooKeeper场景实践:(2)集中式配置管理
- Zookeeper场景实践:(4)命名服务
- Zookeeper场景实践:(5)分布式通知/协调
- ZooKeeper场景实践:(6)集群监控和Master选举
- ZooKeeper场景实践:(7)分布式锁
- Zookeeper场景实践:(8)分布式队列
所有的代码你都可以到我的github上面下载。点击这里.不正之处,敬请谅解。