一般任务的反压并不会直接影响实时任务,但是任务中反压的节点是处于一个高负载情况,会造成任务的延迟越来越大,如果是持续性的反压,意味着任务本身存在瓶颈,可能导致潜在的不稳定或者数据延迟,尤其是数据量较大的场景下,反压的影响主要体现在Flink中checkpoint生成上,主要影响两个方面:
•任务出现反压,上游数据流阻塞,会使数据管道中数据处理速度变慢,数据处理被阻塞也会导致 checkpoint barrier 流经整个数据管道的时长变长,因而 checkpoint总体时间(End to End Duration)变长甚至是checkpoint失败。
•因为为保证 EOS(Exactly-Once-Semantics,准确一次),在对齐checkpoint场景中,算子接收多个管道输入,输入较快的管道数据state会被缓存起来,等待输入较慢的管道数据barrier对齐,这样由于输入较快管道数据没被处理,反压一直存在,较快的数据进入后一直积压可能导致OOM或者内存资源耗尽的不稳定问题。
这个影响对于数据量大的生产环境的作业来说是十分危险的,因为 checkpoint是保证数据一致性的关键,checkpoint 时间变长有可能导致 checkpoint 超时失败,而 state 大小同样可能拖慢 checkpoint 甚至导致 OOM 从而导致实时任务异常,而且不能能失败的checkpoint进行快速恢复。
以上内容摘自《企业级云原生白皮书项目实战》电子书,点击https://developer.aliyun.com/ebook/download/7774可下载完整版
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。