【问题标题】:Can you access isBackPressured from Apache Flink operator?你可以从 Apache Flink 操作符访问 isBackPressure 吗?
【发布时间】:2021-09-28 16:23:46
【问题描述】:

我为 Apache Flink 编写了一个 java 程序。我想定期执行一些计算,所以我使用计时器来触发重新计算。例如,每 10 秒的实现花费大约 1 秒(软阈值)来更新状态。由于该作业还应处理常规记录,因此通常在选择时间执行会产生一些背压和数据延迟。所以我想知道如果执行重新计算的任务槽(子任务)受到背压,您是否可以访问操作员中的任何背压指标以跳过重新计算?我在 getRuntimeContext().getMetricGroup() 中搜索它,但没有找到任何有用的东西。

【问题讨论】:

    标签: apache-flink flink-streaming flink-cep


    【解决方案1】:

    一个想法是让 Flink 之外的东西监控相关指标,并让这个外部进程发送一个事件以在判断时机正确时触发重新计算。

    您可能会为此使用几个相关的指标,isBackPressured 可能是最没用的:

    • isBackPressured

      • 自 Flink 1.10 起可用
      • 基于时间点样本
      • 返回 truefalse
    • idleTimeMsPerSecond

      • 自 Flink 1.11 起可用
      • 在 1.11 和 1.12 中,idle 表示不忙,包括背压所花费的时间
      • 从 1.13 开始,idlebackPressure 不同
    • backPressuredTimeMsPerSecond, busyTimeMsPerSecond

      • Flink 1.13 中的新功能
      • isBackPressured更准确
      • 背压:阻塞等待输出缓冲区
      • 空闲:没有要处理的数据
      • 忙碌:不空闲或背压

    【讨论】:

    • 感谢您的帮助。如果没有更简单的解决方案,我会考虑您的建议。我假设代码/操作员没有提供这些指标。
    • 我想知道 JMX 是否可以工作。
    猜你喜欢
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 2018-01-27
    • 1970-01-01
    • 2016-03-07
    • 1970-01-01
    相关资源
    最近更新 更多