背景:
实时效果数据中map的每条数据处理都需要一个单例的对象,这个单例对象的初始化在open方法中
在map每次计算前都会判断此单例对象是否存在,如果不存在希望flink任务挂掉
思路:
如果发现对象为null,抛出异常,不catch
空指针异常是运行时异常的子集,抛出哪个都可以,只是空指针异常语义更明确
代码如下

线上测试
线上部署之后,在task日志,jobManager日志,Exception日志中均发现了空指针异常
flink任务在反复重试几次之后失败(这需要几分钟时间),符合预期
本文探讨了在Flink实时数据处理中,如何确保单例对象正确初始化。通过在open方法中进行初始化,并在map计算前检查对象状态,若对象未初始化则抛出空指针异常,使任务在重试后正常失败,以此保障数据处理的健壮性。
背景:
实时效果数据中map的每条数据处理都需要一个单例的对象,这个单例对象的初始化在open方法中
在map每次计算前都会判断此单例对象是否存在,如果不存在希望flink任务挂掉
思路:
如果发现对象为null,抛出异常,不catch
空指针异常是运行时异常的子集,抛出哪个都可以,只是空指针异常语义更明确
代码如下

线上测试
线上部署之后,在task日志,jobManager日志,Exception日志中均发现了空指针异常
flink任务在反复重试几次之后失败(这需要几分钟时间),符合预期
6870
1万+
1679

被折叠的 条评论
为什么被折叠?