Flink kafkaConsumer
要想自定义一个source,在flink里面无非就两种情况:
1.通过实现sourceFunction接口来自定义并行度为1的数据源;
2.通过实现ParallelSourceFunction接口或者继承RichParallelSourceFuncion来自定义具有并行度的数据源。
使用的FlinkKafkaConsumer011 其实也是继承了FlinkKafkaConsumer10 然后FlinkKafkaConsumer10 又继承了RichParallelSourceFunction,然后实现需要的checkpoint和结果相关的接口。
FlinkKafkaConsumer011<T> extends FlinkKafkaConsumer010<T>
FlinkKafkaConsumer010<T> extends FlinkKafkaConsumerBase<T>
FlinkKafkaConsumerBase<T> extends RichParallelSourceFunction<T> implements
CheckpointListener,
ResultTypeQueryable<T>,
CheckpointedFunction
3.kafkaConsumer 有7种构造方法,
单tpoic使用DeserializationSchema;
多个topic的情况,使用list传入后,用KafkaDeserializationSchema;
正则匹配topic,相关主题一点创建就会被订阅,可能业务一直增长,需要新建一个topic,那么就需要使用这种形式,不用重启consumer的情况下消费新的topic的数据;
具体情况看自己的业务需求来分析。