反压并不会直接影响作业的可用性,它表明作业处于亚健康的状态,有潜在的性 能瓶颈并可能导致更大的数据处理延迟。通常来说,对于一些对延迟要求不太高或者 数据量比较小的应用来说,反压的影响可能并不明显,然而对于规模比较大的 Flink 作业来说反压可能会导致严重的问题。 这是因为 Flink 的 checkpoint 机制,反压还会影响到两项指标 : checkpoint 时 长和 state 大小。 ● 前者是因为 checkpoint barrier 是不会越过普通数据的,数据处理被阻塞也会 导致 checkpoint barrier 流经整个数据管道的时长变长,因而 checkpoint 总 体时间(End to End Duration)变长。 ● 后者是因为为保证 EOS(Exactly-Once-Semantics,准确一次),对于有 两个以上输入管道的 Operator,checkpoint barrier 需要对齐(Alignment), 接受到较快的输入管道的 barrier 后,它后面数据会被缓存起来但不处理,直 到较慢的输入管道的 barrier 也到达,这些被缓存的数据会被放到 state 里面, 导致 checkpoint 变大。 这两个影响对于生产环境的作业来说是十分危险的,因为 checkpoint 是保证数 据一致性的关键,checkpoint 时间变长有可能导致 checkpoint 超时失败,而 state 大小同样可能拖慢 checkpoint 甚至导致 OOM (使用 Heap-based StateBackend) 或者物理内存使用超出容器资源(使用 RocksDBStateBackend)的稳定性问题。 因此,我们在生产中要尽量避免出现反压的情况。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。