应该会被再次消费,似乎现有的流式处理系统中所说的exactly once,实际上指的一般都是最终结果上是exactly once,而不是保证消息只被消费一次。也就是说,虽然有些消息被消费了多次,但是效果上等同于只被消费了一次。
知乎上看到的这篇文章里面有讲这个问题: 端到端一致性,流系统Spark/Flink/Kafka/DataFlow对比总结(压箱宝具呕血之作) - 阿莱克西斯的文章 - 知乎 https://zhuanlan.zhihu.com/p/77677075 祝好, maqy ------------------ 原始邮件 ------------------ 发件人: "Jimmy Wong"<[hidden email]>; 发送时间: 2019年9月9日(星期一) 中午11:50 收件人: "[hidden email]"<[hidden email]>; 主题: Kafka 与 extractly-once Hi,all: 请教一下,我设置 checkpoint 的时间是 5 分钟,如果在这 5 分钟之内,某个 task 挂了,然后又重新拉起。我是不是可以理解为这时候从 checkpoint 的数据获得的是这 5 分钟之前的 Kafka offset,但是这 5 分钟之内的消息已经消费,流向下游。重新拉起之后,source 重放,那么这时候这 5 分钟的数据会再次被消费麽?如果再次消费,那么怎么保证 Extractly-Once 呢? | | Jimmy | | [hidden email] | 签名由网易邮箱大师定制 |
Hi, 卿云:
感谢你的回答!我知道Extractly-Once是指算子不同更新在结果上只反映一次,不是算子只进行一次计算。但是,对于我的这种场景,算子多次计算的结果都会发往下游,从而导致结果会反映算子每次更新。 | | Jimmy | | [hidden email] | 签名由网易邮箱大师定制 在2019年09月9日 14:31,马卿云<[hidden email]> 写道: 应该会被再次消费,似乎现有的流式处理系统中所说的exactly once,实际上指的一般都是最终结果上是exactly once,而不是保证消息只被消费一次。也就是说,虽然有些消息被消费了多次,但是效果上等同于只被消费了一次。 知乎上看到的这篇文章里面有讲这个问题: 端到端一致性,流系统Spark/Flink/Kafka/DataFlow对比总结(压箱宝具呕血之作) - 阿莱克西斯的文章 - 知乎 https://zhuanlan.zhihu.com/p/77677075 祝好, maqy ------------------ 原始邮件 ------------------ 发件人: "Jimmy Wong"<[hidden email]>; 发送时间: 2019年9月9日(星期一) 中午11:50 收件人: "[hidden email]"<[hidden email]>; 主题: Kafka 与 extractly-once Hi,all: 请教一下,我设置 checkpoint 的时间是 5 分钟,如果在这 5 分钟之内,某个 task 挂了,然后又重新拉起。我是不是可以理解为这时候从 checkpoint 的数据获得的是这 5 分钟之前的 Kafka offset,但是这 5 分钟之内的消息已经消费,流向下游。重新拉起之后,source 重放,那么这时候这 5 分钟的数据会再次被消费麽?如果再次消费,那么怎么保证 Extractly-Once 呢? | | Jimmy | | [hidden email] | 签名由网易邮箱大师定制 |
你好,
这种情况下应该就如jasine chen所说的那样,需要外部系统的支持,比如配合kafka的事务来提交。 祝好, maqy ------------------ 原始邮件 ------------------ 发件人: "Jimmy Wong"<[hidden email]>; 发送时间: 2019年9月9日(星期一) 下午3:52 收件人: "[hidden email]"<[hidden email]>; 抄送: "user-zh"<[hidden email]>; 主题: 回复:Kafka 与 extractly-once Hi, 卿云: 感谢你的回答!我知道Extractly-Once是指算子不同更新在结果上只反映一次,不是算子只进行一次计算。但是,对于我的这种场景,算子多次计算的结果都会发往下游,从而导致结果会反映算子每次更新。 | | Jimmy | | [hidden email] | 签名由网易邮箱大师定制 在2019年09月9日 14:31,马卿云<[hidden email]> 写道: &nbsp; &nbsp; &nbsp; &nbsp; 应该会被再次消费,似乎现有的流式处理系统中所说的exactly once,实际上指的一般都是最终结果上是exactly once,而不是保证消息只被消费一次。也就是说,虽然有些消息被消费了多次,但是效果上等同于只被消费了一次。 &nbsp; &nbsp; &nbsp; &nbsp;知乎上看到的这篇文章里面有讲这个问题: &nbsp; &nbsp; &nbsp; &nbsp;端到端一致性,流系统Spark/Flink/Kafka/DataFlow对比总结(压箱宝具呕血之作) - 阿莱克西斯的文章 - 知乎 https://zhuanlan.zhihu.com/p/77677075 祝好, maqy ------------------ 原始邮件 ------------------ 发件人:&nbsp;"Jimmy Wong"<[hidden email]&gt;; 发送时间:&nbsp;2019年9月9日(星期一) 中午11:50 收件人:&nbsp;"[hidden email]"<[hidden email]&gt;; 主题:&nbsp;Kafka 与 extractly-once Hi,all: 请教一下,我设置 checkpoint 的时间是 5 分钟,如果在这 5 分钟之内,某个 task 挂了,然后又重新拉起。我是不是可以理解为这时候从 checkpoint 的数据获得的是这 5 分钟之前的 Kafka offset,但是这 5 分钟之内的消息已经消费,流向下游。重新拉起之后,source 重放,那么这时候这 5 分钟的数据会再次被消费麽?如果再次消费,那么怎么保证 Extractly-Once 呢? | | Jimmy | | [hidden email] | 签名由网易邮箱大师定制 |
你好,
如果你希望端到端的 ExactlyOnce 需要 Sink 做一些事情,现在社区有一个 TwoPhaseCommitFunction[1] 用于支持这种特性,这里有一篇详细讲解的文章[2] 供参考。 [1] https://ci.apache.org/projects/flink/flink-docs-release-1.9/api/java/org/apache/flink/streaming/api/functions/sink/TwoPhaseCommitSinkFunction.html [2] https://flink.apache.org/features/2018/03/01/end-to-end-exactly-once-apache-flink.html Best, Congxian 马卿云 <[hidden email]> 于2019年9月10日周二 下午5:09写道: > 你好, > 这种情况下应该就如jasine chen所说的那样,需要外部系统的支持,比如配合kafka的事务来提交。 > > > > 祝好, > maqy > > > ------------------ 原始邮件 ------------------ > 发件人: "Jimmy Wong"<[hidden email]>; > 发送时间: 2019年9月9日(星期一) 下午3:52 > 收件人: "[hidden email]"<[hidden email]>; > 抄送: "user-zh"<[hidden email]>; > 主题: 回复:Kafka 与 extractly-once > > > > Hi, 卿云: > > 感谢你的回答!我知道Extractly-Once是指算子不同更新在结果上只反映一次,不是算子只进行一次计算。但是,对于我的这种场景,算子多次计算的结果都会发往下游,从而导致结果会反映算子每次更新。 > > > | | > Jimmy > | > | > [hidden email] > | > 签名由网易邮箱大师定制 > > > 在2019年09月9日 14:31,马卿云<[hidden email]> 写道: > &nbsp; &nbsp; &nbsp; &nbsp; > 应该会被再次消费,似乎现有的流式处理系统中所说的exactly once,实际上指的一般都是最终结果上是exactly > once,而不是保证消息只被消费一次。也就是说,虽然有些消息被消费了多次,但是效果上等同于只被消费了一次。 > &nbsp; &nbsp; &nbsp; &nbsp;知乎上看到的这篇文章里面有讲这个问题: > &nbsp; &nbsp; &nbsp; > &nbsp;端到端一致性,流系统Spark/Flink/Kafka/DataFlow对比总结(压箱宝具呕血之作) - 阿莱克西斯的文章 - > 知乎 > https://zhuanlan.zhihu.com/p/77677075 > > > > > 祝好, > maqy > > > ------------------ 原始邮件 ------------------ > 发件人:&nbsp;"Jimmy Wong"<[hidden email]&gt;; > 发送时间:&nbsp;2019年9月9日(星期一) 中午11:50 > 收件人:&nbsp;"[hidden email]"<[hidden email]&gt;; > > 主题:&nbsp;Kafka 与 extractly-once > > > > Hi,all: > 请教一下,我设置 checkpoint 的时间是 5 分钟,如果在这 5 分钟之内,某个 task 挂了,然后又重新拉起。我是不是可以理解为这时候从 > checkpoint 的数据获得的是这 5 分钟之前的 Kafka offset,但是这 5 > 分钟之内的消息已经消费,流向下游。重新拉起之后,source 重放,那么这时候这 5 分钟的数据会再次被消费麽?如果再次消费,那么怎么保证 > Extractly-Once 呢? > | | > Jimmy > | > | > [hidden email] > | > 签名由网易邮箱大师定制 |
Free forum by Nabble | Edit this page |