我想知道Flink中是否有内置错误处理选项。 可能有两种情况:
来自Kafka的当前消息(在我的情况下)无效,继续下一个
未捕获的异常 - 从我看到它可以完全停止流聚合。
答案 0 :(得分:3)
1)这是使用flatMap以惯用方式完成的:如果您的消息有效,则继续使用包含有效元素的列表(可能已在同一步骤中处理)。如果它无效,您只需返回一个空列表,以便该步骤不会生成任何元素。我可以提供Scala代码,但我不熟悉Java API,所以我不想让你偏离轨道。只需检查flatMap调用。
2)这取决于异常的类型:如果它是由您自己的代码引起的,只需捕获它并在操作符内处理它,或者只是记录它并继续前进。没有关于特定案例的任何进一步信息,这是我所知道的最好的,但同样,来自Scala我还没有经历过运行时异常。