【Flink系列十三】Flink-Kafka-Connector KafkaSource FlinkKafkaConsumer没有上报指标
问题
使用了Flink-Kafka-Connector(版本1.13.0),使用FlinkKafkaConsumer 上报了KafkaLag指标,但是换成 KafkaSource 却没有任何指标。
原因
通过查阅 JIRA发现,Flink-1.13的 kafka-connector 的新版KafkaSource 没有上报指标。
Report metrics of KafkaConsumer in Kafka new source
修复的版本:1.13.2, 1.14,意思是升级到这两个版本才能上报Kafka相关的指标。
兼容性
如果遇到这个问题,则说明 kafka-clients的版本太低。
Caused by: java.lang.NoSuchMethodError: org.apache.kafka.clients.consumer.KafkaConsumer.committed(Ljava/util/Set;)Ljava/util/Map;
at org.apache.flink.connector.kafka.source.reader.KafkaPartitionSplitReader.acquireAndSetStoppingOffsets(KafkaPartitionSplitReader.java:331) ~[flink-application-xxxx.jar:?]
Flink-Kafka-Connector 和 KafkaClients的兼容性说明
Flink-1.13.2+ 使用的Kafka API至少2.4.1。
- Kafka版本的兼容性未在官方文档中指出。Flink源码中引用的版本是 kafka-clients 2.4.1。
Flink-1.13.2 使用到新版的KafkaAPI 变更的说明
解决方案
Flink 1.13的发行版,可以直接使用1.13.2的Flink-kafka-connector。
依据:通过查看 有关源码 FLINK-22766,发现该Connector的变更不依赖除Connector以外的任何变更,因此可以兼容Flink-1.13.0。
也可以把Flink发行版+Connector直接升级到 Flink-1.13.2,Flink-1.14。
参考链接
Flink 发起的KafkaSource 提议