定义
Master-worker是并行模式之一。它的核心思想是,系统两类进程协作工作:Master进程和Worker进程。Master进程负责接收和分配任务,Worker进程负责处理子任务。当各个Worker进程将子任务处理完后,将结果返回给Master进程,由Master进程做归纳和汇总,从而得到子系统的最终结果。其处理过程如图一所示
图一
优点
Master-Worker模式的好处是它能将一个大任务分解成若干个小任务,并行执行,提高了系统的吞吐量。Master进程会分配完任务后并立即返回,并不会等待系统全部处理完成后再返回,其处理过程是异步的。
Master-Worker结构图
由结构图可以看出,Master为主要进程,他维护了一个Worker进程队列,任务队列,结果集。Worker进程队列中的Worker进程,不停的从任务队列中提取子任务进行处理,并且将子任务的处理结果写入结果写入结果集。
Master-Worker模式的主要参与者
角色 | 作用 |
Worker | 用于实际处理一个任务 |
Master | 用于任务的分配和最终结果的合成 |
Main | 启动系统,调度开启Master |