当使用kafka api创建具有一次语义的kafka生产者时,必须设置两个属性: transactional.id
必须设置为事务id,并且 enable.idempotence
必须设置为true。
在Apache·Flink,一个 FlinkKafkaProducer
可以为生产者的所需语义配置参数,特别是值 Semantics.EXACTLY_ONCE
就一次。
查看 FlinkKafkaProducer
,事务ID将自动生成和维护。但是,我没有找到任何地方 enable.idempotence
对于 ProducerConfig
潜在的 KafkaProducer
.
你觉得酒店怎么样 enable.idempotence
必须在 ProducerConfig
给予 FlinkKafkaProducer
,还是有什么我监督过的?
1条答案
按热度按时间syqv5f0l1#
不,不需要按照Kafka文档中的说明进行设置:
如果设置了transactional.id,则幂等性将自动启用,同时生产者将配置幂等性所依赖的。
正如你所注意到的,在选择
Semantics.EXACTLY_ONCE
Flink负责设置和控制transactional.id
财产。不过,这里可能会提到一些您感兴趣的其他属性。我不确定现在是怎么回事,但正如我上次检查的那样,默认的kafka代理/客户机配置实际上允许在某些场景中发生数据丢失。