flink实战--如何基于java-agent技术增强Flink功能
Agent实现Flink流动数据的监听
一个Flink程序的运行,会依赖到一个或多个Connector(连接器),而这些连接器分为Source(主要用于读)和Sink(主要用于写),那么如果要监听到Flink作业流动的数据,我们这里可以简单尝试去查看支持Sink的Connector(例如:flink-connector-jdbc),看看 是否有实现一个公共的接口,然后对这个接口做监听,即可“读取”写入前的数据 ?
再次经过一系列的代码review,博主发现基本所有的sink相关的Connector都继承了“org.apache.flink.api.common.io.OutputFormat”这个接口类,而这个接口类里面有个核心的方法(writeRecord),我们可以从这个方法作为监听的入口:
public interface OutputFormat<IT> extends Serializable {
.....
/**
* Adds a record to the output.
*
* <p>When this method is called, the output format it guaranteed to be opened.
*