FlinkkafkaConsumer on kafka

tech2025-11-03  2

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的数据;

具体情况看自己的业务需求来分析。

 

最新回复(0)