开发者社区> 问答> 正文

flink Barrier怎样具体排列?

flink Barrier怎样具体排列?

展开
收起
游客d7m6sp6tv6n2q 2021-12-08 19:14:19 600 0
1 条回答
写回答
取消 提交回答
  • 1.Operator 从一个 incoming Stream 接收到 Snapshot Barrier n,然后暂停处理,直到其它的 incoming Stream 的 Barrier n(否则属于 2 个 Snapshot 的记录就混在一起了)到达该 Operator 接收到 Barrier n 的 Stream被临时搁置,来自这些 Stream 的记录不会被处理,而 是被放在一个 Buffer 中。

    2.一旦最后一个 Stream 接收到 Barrier n,Operator 会 emit 所有暂存在 Buffer 中的记录, 然后向 Checkpoint Coordinator 发送 Snapshot n,继续处理来自多个 Stream 的记录

    3.基于 Stream Aligning 操作能够实现 Exactly Once 语义,但是也会给流处理应用带来延迟,因为为了排列对齐 Barrier,会暂时缓存一部分 Stream 的记录到 Buffer 中,尤其是在数据流并行度很高的场景下可能更加明显,通常以最迟对齐 Barrier 的一个 Stream 为处理 Buffer 中缓存记录的时刻点。在 Flink 中,提供了一个开关,选择是否使用 Stream Aligning, 如果关掉则 Exactly Once 会变成 At least once。

    2021-12-08 19:15:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载