看懂Zookeeper原理,原论文就够了!
Abstract and introduction:
这两部分主要讲了zookeeper的几个关键特点,这里意义介绍
1. wait-free
这是并发开发里的一个概念。很多人都知道lock-free,lock-free是只要有一个进程还在运行,别的进程最终的最终都会结束,这个最终是什么时候就不知道了。
wiat-free要求更严一点,需要所有进程在有限步骤里能够结束,但是其实这个多少步也不太说的清。
这部分内容目前不是很懂,先知道个大概。反正就是我们操作zookeeper不会被卡就是拉!没有锁的消耗!
2. client FIFO
这个特性就是说客户端发送的请求会被按顺序执行。我一开始觉得这个特性没啥感觉,看不出来哪里牛逼。
论文里解释了一下这个特性的用途-----异步。也就是说客户端发出请求后可以不用等,可以一下子发一大堆请求出去。反正这些请求都会按照FIFO执行。
3. request linearizability
所有改变zookeeper状态的请求都会被顺序执行。这里牵扯到分布式共识算法的问题在里面,一下子不怎么说的明白。感兴趣的读者可以了解下RAFT这种需要选主的共识算法。
基本概念就是这个线性执行能够保证分布式系统的一致性。
4. coordinate primitives
zookeeper的没有针对哪一种分布式功能做实现,而是实现了一套树形存储模型你可以用这个模型来实现那些分布式协调的基本功能。比如实现个分布式动态配置,实现个分布式锁等等。
【to be continued----】