上海高端网站公司,中国著名外贸公司有哪些,品牌网站建设c股j东大蝌蚪,网站简繁体转换js背景#xff1a;
flink在开启checkpoint的时候有两种模式可以选择#xff0c;exact-one和atleastone模式#xff0c;那么这两种模式有什么区别呢#xff1f;
exact-one和atleastone模式的区别
先说结论#xff1a;exact-one可以完全做到状态的一致性#xff0c;而atle…背景
flink在开启checkpoint的时候有两种模式可以选择exact-one和atleastone模式那么这两种模式有什么区别呢
exact-one和atleastone模式的区别
先说结论exact-one可以完全做到状态的一致性而atleastone模式正常情况下没法做到状态的一致性如果开启这个模式有些消息会重复处理例如统计计数时重复的消息会导致统计两次 那么为什么会这样呢原理如下
简单来说主要的区别在于两种模式下对于接收到ckp分隔符后对齐过程中是否继续处理已经收到ckp分隔符的chanel的记录的不同exactone是ckp分隔符对齐过程中先缓存记录不处理而atleastone在ckp分隔符对齐过程中正常处理消息这样这些消息就会被当成这次ckp的状态的一部分而其实它不应该是这次ckp状态的一部分而在应用从最新的ckp启动后这些记录又有重新消费叠加上之前已经成为ckp状态的那一次相当于消息被重复处理了两次所以才被称为atleastone模式
彩蛋那么atleastone有可能达到exactone一样的效果吗
有前提是作业不需要包含对齐操作也就是比如只包含map,fliter等并行算子完全不需要分隔符对齐但是这种情况下应该直接设置为exactone就完事了不用故意使用atleastone的