前言
以下是基于海豚v2.0.1源码分析得出的图解:master和worker执行流程。
后面所有的讲解都是围绕这一张图,所以在看讲解时,请参考整个图去理解。讲解思路是化整为零,积点成线,集线成面。

本文需要对海豚有一定了解,使用经验的同学。以下简单说一些基础认识,名词叫法可能不太相同,但也应该比较好理解。
调度单元
海豚的调度粒度。海豚里有process和task两个定义,一个process有多个task,依赖关系是task级别的,而真正调度是process级别的,也就是每次调度都是调度整个process。
目前海豚是master和worker架构,分工也很明确:
master负责整个process生命周期,包括task的dag图构建,task的dag执行,选择提交worker,操作DB等;
worker负责task执行,是真正的执行器。这里需要注意,worker不操作DB!

Command解耦
海豚还有个应用层API服务,和master主要通过command解耦。比如正常调度(start_process),重跑(repeat_running)等
但是,终止(stop),暂停(pause)等还是通过netty直连master

本文详细解析了海豚v2.0.1版本的master和worker执行流程,介绍了其架构中master与worker的具体职责,以及如何通过command进行解耦。
&spm=1001.2101.3001.5002&articleId=126693602&d=1&t=3&u=9c60109ec1ee45078ee4a26da9c70a7c)
6014

被折叠的 条评论
为什么被折叠?



