Flink 1.9源码学习03 ---- TaskManager启动源码

通过启动脚本已经找到了TaskManager 的启动类org.apache.flink.runtime.taskexecutor.TaskManagerRunner

Flink 1.9源码学习03 ---- TaskManager启动源码

--->>>

我们先看它的main方法:

Flink 1.9源码学习03 ---- TaskManager启动源码

 

调用了runTaskManager方法,启动task manager:

Flink 1.9源码学习03 ---- TaskManager启动源码

启动了taskManager

Flink 1.9源码学习03 ---- TaskManager启动源码

start其实是将taskManager 端的RPC服务起起来了

看一下TaskManagerRunner的构造方法中:

Flink 1.9源码学习03 ---- TaskManager启动源码

点进去:

我们看到创建TaskManagerServices 传入了很多的对象。

Flink 1.9源码学习03 ---- TaskManager启动源码

我们需要关注的几个重点:

Flink 1.9源码学习03 ---- TaskManager启动源码

Flink 1.9源码学习03 ---- TaskManager启动源码Flink 1.9源码学习03 ---- TaskManager启动源码

返回类:

Flink 1.9源码学习03 ---- TaskManager启动源码

我们发现TaskExecutor 这个类实现了 TaskExecutorGateway 这个接口

Flink 1.9源码学习03 ---- TaskManager启动源码

我们看看这个接口,很熟悉的RPC通信,跟方法:

 

Flink 1.9源码学习03 ---- TaskManager启动源码

还有很熟悉的提交task的方法:

Flink 1.9源码学习03 ---- TaskManager启动源码

 

这个方法也是比较重要的,可以看到这是一个触发checkPoint的RPC,这里可能会有疑问为什么Chenkpoint这个RPC会在TaskManager端,看代码

Flink 1.9源码学习03 ---- TaskManager启动源码

看到 

task.triggerCheckpointBarrier()这个方法

看到这里大致就知道了,其实这个RPC是留给Coordinator调用的,会触发生成Barrier的逻辑,所以看到这里我们知道了 checkpoint rpc启动是在taskmanager启动的时候启动调用的。

 

参考:

https://www.cnblogs.com/ljygz/p/11414206.html