开发者社区> 问答> 正文

关于window过程中barrier的问题

大家好,想请教一个关于barrier的问题

如果我有如下算子

.window()

.reduce()

假设barrier和元素顺序是

tuple 和 barrier

当tuple流经窗口期,barrier是会阻塞等待tuple从窗口流出之后再达到下一个算子,还是不在窗口阻塞,直接流到下一个算子呢?*来自志愿者整理的flink邮件归档

展开
收起
说了是一只鲳鱼 2021-12-07 10:20:17 898 0
2 条回答
写回答
取消 提交回答
  • 请问这个问题有答案了吗,正在苦恼中。。。

    2023-05-05 14:53:10
    赞同 展开评论 打赏
  • barrier 是和 checkpoint 相关的逻辑,用来触发 checkpoint 的,你可以认为 barrier

    和数据的顺序必须是严格保证的,不然没法保证 exactlyonce 的语义。

    假设某个算子 B 有两个上游 A1 和 A2,那么 A1 和 A2 的 barrier 都发送的 B 之后,B 才会开始做

    checkpoint,假设 A1 的 barrier 在 10:00 到了,A2 的 barrier 在 10:01 才到,那么 10:00 -

    10:01 这段时间内,A1 发送到 B 的数据是否会被处理取决于是 exactlyonce,还是 at least once。如果是 exactly

    once 语义,则不会处理(堆积在 B 这里),如果是 at least once 语义则会处理并且发送到下游。

    另外也可以阅读一下社区相关的文档[1]

    [1]

    https://ci.apache.org/projects/flink/flink-docs-release-1.11/learn-flink/fault_tolerance.html#how-does-state-snapshotting-work*来自志愿者整理的flink邮件归档

    2021-12-07 11:33:33
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载