当前位置: 首页 > article >正文

flink中barrier不对齐的原因和影响

        Barrier 不对齐(Barrier Misalignment)可能导致一些性能和一致性相关的问题,但 Flink 提供了机制来确保即使在不对齐的情况下,也可以保证数据的一致性。

1. 什么是 Barrier 不对齐?

Barrier 不对齐是指在分布式数据流中,不同输入流上的 Barrier 到达算子的时间不一致。这种情况可能由于以下原因造成:

  • 各个输入流的处理速率不同。
  • 数据分区在网络传输中存在延迟。
  • 部分数据流的处理逻辑更复杂导致处理时间不同。

当 Barrier 不对齐时,某些输入流的 Barrier 可能已经到达算子,而其他输入流上的 Barrier 还未到达。


2. Barrier 不对齐的影响

1. 数据处理的阻塞
在 Flink 的默认实现(对齐检查点模式)中,算子必须等到所有输入流都接收到当前 Barrier 才能继续处理新的 Barrier。这意味着:

  • 快速到达 Barrier 的流会被阻塞,等待其他流的 Barrier。
  • 会导致整体吞吐量下降,特别是在网络或算子处理速度不均衡时。

2. 性能问题
当 Barrier 长时间不能对齐时,处理性能会受到较大影响,尤其是在流量高峰期或复杂拓扑结构中。


3. Flink 能否保证一致性?

即使存在 Barrier 不对齐,Flink 仍然可以保证一致性。具体来说:

1. 对齐检查点(Aligned Checkpointing)
在这种模式下,算子会在所有输入流的 Barrier 到达之前暂停后续处理,并将缓冲的数据存储起来,直到所有 Barrier 对齐。

  • 优点:严格保证一致性(即分布式快照的一致性)。
  • 缺点:可能会因 Barrier 不对齐导致高延迟。

2. 非对齐检查点(Unaligned Checkpointing)
为了优化性能,Flink 1.11 引入了 非对齐检查点(Unaligned Checkpointing)机制。在这种模式下:

  • 不需要等待所有输入流的 Barrier 对齐。
  • 算子会将未对齐的数据缓冲(例如未到达 Barrier 的输入流缓冲区)作为 Checkpoint 的一部分保存下来。
  • 优点:避免了因为对齐等待而导致的高延迟问题,特别适合高吞吐场景。
  • 缺点:Checkpoint 的大小可能会增大,恢复时需要更多的时间来回放数据。

因此,通过非对齐检查点机制,Flink 在性能和一致性之间找到了一种权衡。


4. 总结

  • Barrier 不对齐可能导致处理阻塞,但不会影响 Flink 的一致性。
  • 对齐检查点(默认模式)可以保证一致性,但可能因不对齐而降低性能。
  • 非对齐检查点(Unaligned Checkpointing)在性能和一致性之间做了平衡,能在不对齐情况下仍然保证一致性。
  • 用户可以根据具体场景选择对齐或非对齐模式以优化性能和延迟。

http://www.kler.cn/a/413001.html

相关文章:

  • Qt/C++基于重力模拟的像素点水平堆叠效果
  • upload-labs 靶场(11~21)
  • OceanBase 大数据量导入(obloader)
  • Elasticsearch对于大数据量(上亿量级)的聚合如何实现?
  • 【大数据学习 | Spark-SQL】Spark-SQL编程
  • CSGO游戏搬砖党如何应对上海Major
  • Unity类银河战士恶魔城学习总结(P146 Delete Save file-P147 Encryption of save data删除数据和加密数据)
  • 软件测试丨Pytest生命周期与数据驱动
  • 下载安装Android Studio
  • C++模板(入门)
  • Go错误与日志处理—推荐实践
  • STM32F103系列单片机通用和复用I/O(GPIO)
  • 容器和它的隔离机制
  • linux模拟HID USB设备及wireshark USB抓包配置
  • 最小生成树-Prim与Kruskal算法
  • day25|leetCode 491.递增子序列,46.全排列 ,47.全排列 II
  • 算法——四数相加 二(leetcode454)
  • 预处理指令
  • Java线程同步Synchronized
  • Kadb中的ecpg编程
  • 如何开发历史题材游戏。
  • C++练级计划->《单例模式》懒汉和饿汉
  • 使用PHP实现用户权限控制系统
  • c++的虚继承说明、案例、代码
  • 网络药理学之薛定谔Schrödinge Maestro:6、分子对接(Glide、Ligand docking)和可视化
  • 【人工智能】Python常用库-TensorFlow常用方法教程