After reading about FlinkKafkaProducer011 and 2PC function in FLINK, I know, 
when snapshotState(),
preCommit currentTransaction.
add <currentTransaction, newTransaction> to the State.
when Checkpoint done and notifyCheckpointComplete(),
producer will commit currentTransaction to brokers.
when initializeState(),
restore from State.
commit currentTransaction and abort newTransaction.
And I have one question, what happens if program fails after 
notifyCheckpointComplete() done?
As my opinion, when it recovers, it will re-commit what has committed which 
results duplicate.



121476...@qq.com

Reply via email to