Source
从源码中学习例子
Kafka实现
类结构
RMQ实现
从上面两个实现来看,主要实现了以下接口
SourceFunction source接口
RichFunction 取到上下文的一些信息
CheckpointedFunction 完成checkpoint功能
CheckpointListener checkpoint监听器
自定义Source
实现这上面的几个接口
public class TestSourceFuncitonn implements SourceFunction, CheckpointedFunction, CheckpointListener, RichFunction {
public TestSourceFuncitonn() {
}
@Override
public void run(SourceContext ctx) throws Exception {
//主要实现这个,发送数据,比如kafka这里实现就是去消费数据从kafka里,再
//发送
sourceContext.collectWithTimestamp(record, timestamp);
}
@Override
public void cancel() {
//对source做取消
}
@Override
public void snapshotState(FunctionSnapshotContext context) throws Exception {
//kafka实现,保存offset
}
@Override
public void initializeState(FunctionInitializationContext context) throws Exception {
}
@Override
public void notifyCheckpointComplete(long checkpointId) throws Exception {
//可以提交offset了
}
@Override
public void open(Configuration parameters) throws Exception {
}
@Override
public void close() throws Exception {
}
@Override
public RuntimeContext getRuntimeContext() {
return null;
}
@Override
public IterationRuntimeContext getIterationRuntimeContext() {
return null;
}
@Override
public void setRuntimeContext(RuntimeContext t) {
}
}