一般在这种构架中。主节点进程负责跟踪从节点状态和任务的有效性,并分配任务到从节点。对Zookeeper来说,这个构架风格具有代表性,阐述了大多数流行的任务,如果选举主节点,跟踪有效的从节点,维护应用元数据。
一个重要例子:
HBase---Google的数据存储系统(BigTable)模型的实现,在最高层,主节点服务器(Hmaster)负责跟踪区域服务器(HRegionServer)是否可用,并分派区域到服务器。
要实现主-从模型式的系统,我们必须了解如下概念:
1:主节点崩溃
如果主节点发送错误并失效,系统将无法分派新的任务或重新分配已失败的任务。
2:从节点崩溃
如果从节点崩溃,已分配的任务将无法完成。
3:通信故障
如果主节点和从节点之间无法进行信息交换,从节点将无法得知新任务分配给它。
为了解决这个问题,之前的主节点出现问题时,系统需要可靠地选举一个新的主节点,判断从哪些从节点有效,并判断一个从节点的状态对于系统其它部分是否有效。
通讯故障导致的另外的一个问题时对锁的同步原语的影响。因为节点可能崩溃,而系统网络也可能网路分区(network partition),锁机制也会阻止任务的继续执行。因此Zookeeper也需要实现处理这些情况的机制。首先,客户端可以告诉Zookeeper某些数据的状态