Flink 1.9源码学习03 ---- TaskManager启动源码
通过启动脚本已经找到了TaskManager 的启动类org.apache.flink.runtime.taskexecutor.TaskManagerRunner
--->>>
我们先看它的main方法:
调用了runTaskManager方法,启动task manager:
启动了taskManager
start其实是将taskManager 端的RPC服务起起来了
看一下TaskManagerRunner的构造方法中:
点进去:
我们看到创建TaskManagerServices 传入了很多的对象。
我们需要关注的几个重点:
返回类:
我们发现TaskExecutor 这个类实现了 TaskExecutorGateway 这个接口
我们看看这个接口,很熟悉的RPC通信,跟方法:
还有很熟悉的提交task的方法:
这个方法也是比较重要的,可以看到这是一个触发checkPoint的RPC,这里可能会有疑问为什么Chenkpoint这个RPC会在TaskManager端,看代码
看到
task.triggerCheckpointBarrier()这个方法
看到这里大致就知道了,其实这个RPC是留给Coordinator调用的,会触发生成Barrier的逻辑,所以看到这里我们知道了 checkpoint rpc启动是在taskmanager启动的时候启动调用的。
参考: