我目前想知道如何处理 Apache Flink 流应用程序中的应用程序错误。一般来说,我看到两种情况:
- 暂时性错误,您希望重播输入数据并且处理可能在第二次尝试时成功。一个示例是对暂时不可用的外部服务的依赖。
- 永久性错误,重复处理仍会失败;例如无效的输入数据。
对于第一种情况,常见的解决方案似乎只是抛出一些异常。或者有没有更好的方法,例如一种特殊类型的异常,用于更有效地处理,例如FailedException
来自 Apache Storm Trident(请参阅Storm Trident 拓扑中的错误处理)。
对于永久性错误,我在网上找不到任何信息。例如,一个map()
操作总是必须返回一些东西,因此不能像在 Trident 中那样默默地丢弃消息。
有哪些可用的 API 或最佳实践?谢谢你的帮助。