-
InTouch 2017培训资料中关于ZooKeeper的使命部分
资源介绍
1.1 ZooKeeper的使命
试着说明ZooKeeper能为我们做什么,就像解释螺丝能为我们做什
么一样。我们可以简单地表述,螺丝刀可以让我们拧动螺丝。但是这种
方式并不能完全表达螺丝刀的能力。实际上,螺丝刀还可以让我们组装
各种家具和电子设备,甚至在某些情况下你还可以用它把画挂在墙上。
就像螺丝刀的例子一样,我们将介绍ZooKeeper能做什么,虽然未必详
尽。
关于ZooKeeper这样的系统功能的讨论都围绕着一条主线:它可以
在分布式系统中协作多个任务。一个协作任务是指一个包含多个进程的
任务。这个任务可以是为了协作或者是为了管理竞争。协作意味着多个
进程需要一同处理某些事情,一些进程采取某些行动使得其他进程可以
继续工作。比如,在典型的主-从(master-worker)工作模式中,从节点
处于空闲状态时会通知主节点可以接受工作,于是主节点就会分配任务
给从节点。竞争则不同。它指的是两个进程不能同时处理工作的情况,
一个进程必须等待另一个进程。同样在主-从工作模式的例子中,我们
想有一个主节点,但是很多进程也许都想成为主节点,因此我们需要实
现互斥排他锁(mutual exclusion)。实际上,我们可以认为获取主节点
身份的过程其实就是获取锁的过程,获得主节点控制权锁的进程即主节
点进程。