当使用Kafka API创建一个具有exactly-once语义的Kafka producer时,必须设置两个属性。transactional.id
必须设置为一个事务性id,以及 enable.idempotence
必须设置为true。
在Apache Flink中,一个 FlinkKafkaProducer
可以用一个参数来配置生产者所需的语义,特别是用值 Semantics.EXACTLY_ONCE
为正好一次语义。
从源码上看 FlinkKafkaProducer
,交易ID是自动生成和维护的。然而,我没有发现任何地方 enable.idempotence
设置为true,对于 ProducerConfig
潜在的 KafkaProducer
.
该财产是否 enable.idempotence
必须提供 ProducerConfig
给予 FlinkKafkaProducer
,还是我有什么地方疏忽了?