大规模分布式系统架构与设计实现 第二章------分布式并行计算原理和实现

本章主要介绍了各种分布式计算的运行模式。

1.master-slave结构

从结构上看的话,这个结构应该是最简单的,结构框图如下,这么一个设备集群,以其中一个设备为master,作为系统中枢,来调度其他的设备进行分布式的运算等功能。
大规模分布式系统架构与设计实现 第二章------分布式并行计算原理和实现
在这种情况下,只需要master和slave之间的一个通信,这个可以通过Socket来实现,master设备作为SocketServer来运作。在这种模式下,也可以通过在单机上编写多线性来模拟这样的结构,线程之间通过线程共享变量来完成通信的过程。
这种模式下的弊端其实显而易见,整个系统中的master太重要了,承担了slave注册,保活,删除失效节点,分配协调节点等重要的工作,承担的任务实在是太多了。那么很显然能想到的就是对master的工作进行分解,分离出部分任务交给其他的“设备”来进行处理。

2 包工头-职介所-手工仓库-工人模型

这一模型就是fourinone(什么,你不知道fourinone,出门右转找github),提出来的一个简化的分布式并行计算的设计模型。
大规模分布式系统架构与设计实现 第二章------分布式并行计算原理和实现
在这个模型中,职介所是用来给包工头介绍工人的,有工人加入的时候,先会向职介所进行注册登记,包工头在职介所中获取工人,之后进行分布式的计算。职介所和工人之间只需要保持松散的联系,询问工人当前工作的完成情况,以便在工人空闲的时候并且,有新的工程的时候回继续介绍这个工人。
工人是用来计算的一个节点,就相当于是前面的slave节点,工人和包工头之间的交互可以理解为直接联系,也可以是通过一个手工仓库来完成彼此之间的联系。
包工头接受项目,对他进行分解分配给不同的工人。

3 消息中枢模式

大规模分布式系统架构与设计实现 第二章------分布式并行计算原理和实现
在这种模式中,工头和工人之间是不直接进行通信的,工头把任务以消息的方式发送到一个消息中枢的地方,工人会从相应的队列里去领取相关的任务。但是这个模式下会有很多东西用不了,比如工人超时完成任务或者工人任务过程中遇到故障终止都会导致系统出现故障。

4 基于网状直接交互的计算模式

这里主要就看一下工头给工人分配任务
大规模分布式系统架构与设计实现 第二章------分布式并行计算原理和实现
工头和工人之间通过手工仓库进行任务的交接,职介者只是在最初工头和工人之间建立连接的时候使用到了,在这个工作完成之后,就算职介者挂掉了,也并不影响当前任务的完成。图中还有另外一点,就是工人之间也是可以进行通信的,工人之间的通信其实就是在分布计算过程中的数据的一个合并。

5 串并结合模式

工人并行工作,工头之间串行工作;举个例子,就像是一个工厂里面,工头就像是流水线的不同环节,在同一个环节里面又会有很多个工人在做同样的工作。

就这么多。。