构造sink函数,实现接口TwoPhaseCommitSinkFunction,需要传递三个参数,一个是传入的数据类型,本文通过构造一个ConnectionState函数来调用transient Connection来获取连接信息。之后再传入Void对象来共享上下文。
static class ConnectionState {
private final transient Connection connection;
ConnectionState(Connection connection) {
this.connection = connection;
}
之后还需要自定义一下序列化的实例。源码给出的是需要调用参数,下文采用的是不用调用参数,使用kryo序列化器来调用传入接口的自定义的参数,
public MysqlTwoPhash() {
super(new KryoSerializer<>(ConnectionState.class,new ExecutionConfig()), VoidSerializer.INSTANCE);
}