Flink Kafka to Kafka保证端到端exactly_once原理

是通过checkpoint保存kafaka的offset,如果下游出现问题,他就会从checkpoint中拿到kafka的offset从新开始消费,这是保证 AT_LEAST_ONCE 语义。
在写入下游的kafka的时候,这些重试的数据会写入到下游的kafka中,但是他们是read_uncommited的,然后下游的kafka消费的时候一定要把isolation.level 设置成为read_committed,这样,那些重试的写进kafka的数据就会被过滤掉,只会留下最后一次处理成功的一条数据是read_committed,这就实现了EXACTLY_ONCE 语义
这里注意,kafka的消费者中,isolation.level 配置默认是read_uncommited的

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容