apache-flink - 你可以从 Apache Flink 操作符访问 isBackPressure 吗?
问题描述
我为 Apache Flink 编写了一个 java 程序。我想定期执行一些计算,所以我使用计时器来触发重新计算。例如,每 10 秒的实现花费大约 1 秒(软阈值)来更新状态。由于该作业还应处理常规记录,因此通常在选择时间执行会产生一些背压和数据延迟。所以我想知道如果执行重新计算的任务槽(子任务)受到背压,您是否可以访问操作员中的任何背压指标以跳过重新计算?我在 中搜索它getRuntimeContext().getMetricGroup()
,但我没有找到任何有用的东西。
解决方案
一个想法是让 Flink 之外的东西监控相关指标,并让这个外部进程发送一个事件以在判断时机正确时触发重新计算。
您可能会为此使用几个相关的指标,并且isBackPressured
可能是最没用的:
isBackPressured
- 自 Flink 1.10 起可用
- 基于时间点样本
- 返回真或假
idleTimeMsPerSecond
- 自 Flink 1.11 起可用
- 在 1.11 和 1.12 中,idle表示不忙,包括背压所花费的时间
- 从 1.13 开始,idle与backPressure不同
backPressuredTimeMsPerSecond
,busyTimeMsPerSecond
- Flink 1.13 中的新功能
- 比更准确
isBackPressured
- backpressured : 阻塞等待输出缓冲区
- idle : 没有要处理的数据
- 忙:不是空闲或背压
推荐阅读
- android - Android ActivityManager 中的 `act` 和 `cat` 是什么意思?
- java - 删除空字符串并减少相同的 String[][] 数组
- hive - 计算 hive 中的行百分比
- git - 试图在 repo 中更新一些提交作者,但说由 X 编写,由 Y 提交
- reactjs - 如何使用 jest 在回调中获取代码覆盖率?
- javascript - 使用 jQuery 创建一个“实时”倒数计时器
- php - 如何从数据库和多个文件夹中删除文件
- javascript - 预期的实例道具与 React 16 中的记忆道具匹配
- c# - 为什么代码中定义的这个故事板不起作用?
- javascript - 我是否需要使用 jQuery 和 Ajax 使用模态表单中的数据删除记录?