在给定上下文的软件体系结構中,为了解决某些经常出现的问题而形成的通用且可重用的解决方案称之为架构模式,而常见的体系架构模式主要有以下十种
- 模型-视图-控制器模式
而下面我将详细介绍主从设备模式
的概念,以及它的用法、在实际中常见的应用场景和优缺点等
主从设备模式
也叫做主仆模式
英文简称为Master-Slave
,核心思想是基于分而治之的思想,将一个原始任务分解为若干个语义等同的子任务,并由专门的工作者线程来并行执行这些任务,原始任务的结果是通过整合各个子任务的处理结果形成的.主要的使用场景有
- 并行计算,以提升计算性能
- 容错处理,以提升计算的可靠性
- 计算精度,以提高计算的精确程度
在分布式的系统中,这个模式还是比较常用的,简单的说,主从(Master-Slave)
与进程-线程
的关系类似,Master
只有一囼机器作为Master
,其他机器作为Slave
,这些机器同时运行组成了集群
.Master
作为任务调度者,给多个Slave
分配计算任务,当所有的Slave
将任务完成之后,最后由Master
汇集结果,这个其实也是MapReduce
思想所在.
例如在Hadoop
中,HDFS
采用了基于Master/Slave
主从架构的分布式文件系统一个HDFS
集群包含一个单独的Master
节点和多个Slave
节点服务器,这里的一个单独的Master節点的含义是HDFS系统中只存在一个逻辑上的Master组件一个逻辑的Master节点可以包括两台物理主机,即两台Master服务器、多台Slave服务器一台Master服务器组成单NameNode
集群,两台Master服务器组成双NameNode
集群并且同时被多个客户端访问,所有的这些机器通常都是普通的Linux机器运行着用户级别(user-level)
以及客户端之间的存取访问关系, NameNode
作为 Master
服务,它负责管理文件系统的命名空间和客户端对文件的访问NameNode
会保存文件系统的具体信息,包括文件信息、文件被分割荿具体block
块的信息、以及每一个block
块归属的DataNode
的信息对于整个集群来说,HDFS
通过NameNode
对用户提供了一个单一的命名空间DataNode
作为slave
服务,在集群中可以存茬多个通常每一个DataNode
都对应于一个物理节点。DataNode
负责管理节点上它们拥有的存储它将存储划分为多个block
块,管理block
块信息同时周期性的将其所有的block
块信息发送给NameNode
。
- 优点:准确性——将服务的执行委托给不同的从设备具有不同的实现。
- 缺点:从设备是孤立的,没有共享的状态主-从通信中的延迟可能是一个问题,例如在实时系统中这种模式只能应用于可以分解的问题。