Flink源碼-11-Source實現

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) {

	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章