- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
本文由简悦SimpRead转码,原文地址
这一讲解Flink“精确一次”的语义实现原理,同时这也是面试的必考点。
Flink的“精确一次”处理语义是,Flink提供了一个强大的语义保证,也就是说在任何情况下都能保证数
据对应用产生的效果只有一次,不会多也不会少。
那么Flink是如何实现“端到端的精确一次处理”语义的呢?
背景
通常情况式计算系统都会为用户提供指定数据处理的可靠模式功能,用来表明在实际生产运行中
会对数据处理做哪些保障。一般来说,流处理引擎通常为用户的应用程序提供三种数据处理语义:最多
一次、至少一次和精确一次。
最多一次(At-most-Once):这种语义理解起来很简单,用户的数据只会被处理一次,不管成功
还是失败,不会重试也不会重发。
至少一次(At-least-**Once)**:这种语义下,系统会保证数据或至少被处理一次。如果中
间发生错误或者丢失,那么会从重新发送一条然后进入处理系统,所以同一个或者消息会
被处理多次。
精确一次(Exactly-**Once)**:表示每一条数据只会被精确地处理一次,不多也不少。
Exactly-Once是Flink、Spark等流处理系统的特性之一,这种语义会保证每一条消息只被流处理
系统处理一次。“精确一次”语义是Flink1.4.0版本引入的一个重要特性,而且,Flink号称支持“端到端
的精确一次”语义。
在这里我们解释一下“端到端(EndtoEnd)的精确一次”,它指的是Flink应用从Source端开始到
Sink端结束,数据必须经过的起始点和结束点。Flink自身是无法保证外部系统“精确一次”语义的,所
以Flink若要实现所谓“端到端(EndtoEnd)的精确一次”的要求,那么外部系统必须支持“精确一次”
语义;然后借助Flink提供的分布式快照和两阶段提交才能实现。
分布式快照机制
我们在之前的课程中讲解过Flink的容错机制,Flink提供了失败恢复的容错机制,而这个容错机制的核
心就是持续创建分布式数据流的快照来实现。
同Spark相比,Spark仅仅是针对Driver的故障恢复Checkpoint。而Flink的快照可以到算子级别,
并且对全局数据也可以做快照。Flink的分布式快照受到Chandy-Lamport分布式快照算法启发,同时进
行了量身定做,有的同学可以搜一下。
Barrier
Flink分布式快照的元一是Barrier(数据栅栏),我们也可以把Barrier简单地理解成一个标
记,该标记是严格有序的,并且随着数据流往动。每个Barrier都带有自己的ID,Barrier极其轻
量,并不会干扰正常的数据处理。
如上图所示,假如我们有一个从左向右流动的数据流,Flink会依次生成snapshot1、snapshot2、
snapshot3……Flink中有一个专门的“协调者”负责收集每个snapshot的位置信息,这个“协调者”也
是高可用的。
Barrier会随着正常数据继续往动,每当遇到一个算子,算子会一个标识,这个标识的时
间是上游所有的输入流都接收到snapshotn。与此同时,当我们的sink算子接收到所有上游流发送的
Barrier时,那么就表明这一批数据处理完毕,Flink会向“协调者”发送确认消息,表明当前的
snapshotn完成了。当所有的sink算子都确认这批数据成功处理后,那么本次的snapshot被标识为
完成。
文档评论(0)