天天看点

95-235-040-源码-task-Flink 对用户代码异常处理1.视界2.概述3.异常后的组件通信

1.视界

95-235-040-源码-task-Flink 对用户代码异常处理1.视界2.概述3.异常后的组件通信

2.概述

​ flink 的架构在 flink 基本组件一节已经介绍过,其中的 TaskManager 负责监护 task 的执行,对于每个 task,flink 都会启动一个线程去执行,那么当用户的代码抛出异常时,flink 的处理逻辑是什么呢?

3.异常后的组件通信

一个 flink task 的线程 Runnable 类是 Task.java,我们观察到它的

run()

方法整个被一个大的 try catch 包住,这里重点关注 catch 用户异常之后的部分:

catch (Throwable t) {
   

			// unwrap wrapped exceptions to make stack traces more compact</
           

继续阅读