声明:本系列博客为原创,最先发表在拉勾教育,其中一部分为免费阅读部分。被读者各种搬运至各大网站。所有其他的来源均为抄袭。
《2021年最新版大数据面试题全面开启更新》
Flink Exactly-once实现原理解析
Flink的“精准一次”处理语意是,Flink提供了一个强大的语义保证,也就是说在任何情况下都能保证数据对应用生产的效果只有一次,不会多也不会少。
Flink是如何实现“端到端的精确一次处理”语义的呢?
背景
通常情况下,流式计算系统都会为用户提供数据处理的可靠模式功能,用来表明在实际生产运行中会对数据处理做哪些保障。一般来说,流处理引擎通常为用户的应用程序提供三种处理语义:最多一次、至少一次和精确一次
- 最多一次(At-most-once):用户的数据只会被处理一次,不管成功还是失败,不会重试也不会重发
- 至少一次(At-least-once):系统保证数据或事件至少被处理一次。如果中间发生错误或者丢失,那么会从源头重新发生一条然后进入处理系统,所以同一个时间或者消息会被处理