我目前在思考如何处理Apache Flink流应用程序中的应用程序错误。一般来说,我看到两种情况:
1.瞬态错误,您希望重新播放输入数据,并且第二次尝试可能会成功处理。例如,对外部服务的依赖暂时不可用。
2.永久性错误,重复处理仍将失败;例如无效的输入数据。
对于第一种情况,似乎常见的解决方案是抛出一些异常。或者是否有更好的方法,例如特殊类型的异常以进行更有效的处理,例如Apache Storm Trident中的FailedException(请参见{{link1:Storm Trident拓扑中的错误处理}})?
对于永久性错误,我找不到任何在线信息。例如,map()操作始终必须返回某些内容,因此不能像在Trident中那样静默地删除消息。
有哪些可用的API或最佳实践?感谢您的帮助。
1.瞬态错误,您希望重新播放输入数据,并且第二次尝试可能会成功处理。例如,对外部服务的依赖暂时不可用。
2.永久性错误,重复处理仍将失败;例如无效的输入数据。
对于第一种情况,似乎常见的解决方案是抛出一些异常。或者是否有更好的方法,例如特殊类型的异常以进行更有效的处理,例如Apache Storm Trident中的FailedException(请参见{{link1:Storm Trident拓扑中的错误处理}})?
对于永久性错误,我找不到任何在线信息。例如,map()操作始终必须返回某些内容,因此不能像在Trident中那样静默地删除消息。
有哪些可用的API或最佳实践?感谢您的帮助。