zookeeper是一个高可用的分布式数据管理与系统协调框架。保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得zookeeper解决很多分布式问题。
有人认为zookeeper之于分布式的意义正如同lex/yacc之于编译的意义。我们知道lex/yacc是一套强大的语法编译工具。使用lex/yacc可以很轻松的完成许多语法规则的编写。同样道理,zookeeper作为一个分布式的数据管理和协调框架,没有它依然可以做分布式,但是有了它,你的分布式会更轻松。
本系列文章主要是从学习的角度对zookeeper常用的场景进行实践,从而更好的理解和掌握zookeeper。
下面是学习过程中收集到的一些资料
<a target="_blank" href="http://www.coder4.com/archives/3856">zookeeper典型应用场景</a>
<a target="_blank" href="http://www.cnblogs.com/haippy/archive/2013/02/21/2920280.html">zookeeper安装和c语言api库指南</a>
<a target="_blank" href="http://blog.csdn.net/xiaolang85/article/details/13021339">zookeeper常用命令</a>
如果之前没有接触过zookeeper的话,建议还是先看看上面这些博客,有了大致的了解然后在来看这个系列的学习笔记。
网上的一些实践的代码通常都是java的,本系列则是利用zookeeper的c语言api完成的。
数据发布与订阅(配置中心)
负载均衡
命名服务(naming service)
分布式通知/协调
集群管理与master选举
分布式锁
分布式队列
我们的目标就是将上面的场景都一一实践一遍。首先说明,涉及到的代码都是在学习zookeeper的过程完成的,很多都非常简单,我希望能够通过一两百行的代码来简单而又直接的体会zookeeper的使用。如果想要深入实现上面说到的每个场景,恐怕还有许多欠考虑的地方。
<a target="_blank" href="http://blog.csdn.net/qq910894904/article/details/40835105">zookeeper场景实践:(1)准备工作</a>
<a target="_blank" href="http://blog.csdn.net/qq910894904/article/deta%20ils/40833747">zookeeper场景实践:(2)集中式配置管理</a>
<a target="_blank" href="http://blog.csdn.net/qq910894904/article/details/40833859">zookeeper场景实践:(4)命名服务</a>
<a target="_blank" href="http://blog.csdn.net/qq910894904/article/details/40833981">zookeeper场景实践:(5)分布式通知/协调</a>
<a target="_blank" href="http://blog.csdn.net/qq910894904/article/details/40834083">zookeeper场景实践:(6)集群监控和master选举</a>
<a target="_blank" href="http://blog.csdn.net/qq910894904/article/details/40834397">zookeeper场景实践:(7)分布式锁</a>
<a target="_blank" href="http://blog.csdn.net/qq910894904/article/details/40834609">zookeeper场景实践:(8)分布式队列</a>