最近在做Flink实时自定义报表,在临近上线的时候,在测试的过程中,运行一段时间后,发现Flink的checkpoint经常会超时导致数据计算延迟甚至会导致组中Flink程序挂掉.
由于这个程序在之前是运行了比较长的一段时间的,并没有报出问题,所以 一开始并没有怀疑到是程序本身的问题,所以浪费了较多的时间,经过多方面测试,最终在查看代码的过程中,发现我每个窗口中存在一个查询SQL更新配置的的代码,去掉该模块后,发现checkpoint的超时的问题不再出现了,所有的checkpoint基本上都是在1s以内完成的,并且程序窗口计算的性能也得到了极大的提升,之前一直以为窗口的性能问题,完全不存在了.
后记:
1.Flink是一个比较高效的流式计算框架,如果在计算过程中,发现自己程序计算性能问题,可以排查一下有没有访问其他性能较弱的服务,导致程序计算能力被大大降低
2.Flink的checkpoint是一个轻量级的快照,如果发现你的快照大小不是很大,但是时间很长,可以排查一下是不是你你程序中有访问其他较慢服务的代码,导致计算延迟,从而使得窗口无法快速计算,从而导致checkpoint无法完成,正常情况下,checkpoint都应该是毫秒级别的.
记一次Flink checkpoint超时问题的排查
最新推荐文章于 2024-06-28 10:12:42 发布