在前面的描述中,我们可以对master-worker架构提取出下面几个要求:
有一个可用的master并且能分配任务给worker是至关重要的。
master必须能够检查出worker奔溃或者失去联系。
master必须知道哪些worker是可用来执行任务的。
master和workers必须能够以一种可靠的方式来存储指派的任务信息和执行状态。
理想的情况下,每个暴露给应用的任务都必须采用原语的形式,完全对应用开发者屏蔽实现的细节。Zookeeper提供关键的机制去实现这种原语,使得开发者能够实现最满足它们需求的原语从而关注他们的应用逻辑。在本书中,我们经常提及像领导者选举或者奔溃检测这样任务的实现作为原语,是因为它们是分布式应用得以构建的基石。