如何模拟flink streaming job失败场景
How to simulate flink streaming job failure scenario
我是 运行 flink 集群中的一个 flink 流作业。我需要模拟一个工作失败的场景。我在源代码中引入了损坏的事件。当该事件发生时,我看到作业抛出异常并且任务已从检查点重新启动。我设置了以下配置:
restart-strategy.fixed-delay.attempts: 1
restart-strategy.fixed-delay.delay: 5 s
但是这些配置没有兑现。即使在第一次尝试后,任务也会继续恢复。根据文件,第一次尝试后作业应该失败。我需要模拟工作失败的场景。怎么做?
最简单的方法是创建一个特定的作业,每次处理数据时都会抛出异常,例如在自定义 ProcessFunction
内部。我不知道你在那里做什么工作,但另一件事可能是发送不正确的输入数据,如果你从某个来源读取数据,比如 Kafka,这将导致工作失败。
可以设置
restart-strategy: none
在这种情况下,作业将直接失败,而不会尝试重新启动。
我也有类似的困惑。结合测试,我做了一些猜测。 restart-strategy.fixed-delay.attempts表示重启作业失败时的重试次数。在您的情况下,Flink 作业可以成功重启,之后,从源中获取损坏的事件并使作业失败。因此,即使在第一次尝试后,任务也会继续恢复。您可以关闭源或接收器以模拟作业失败,在这种情况下作业将仅重新启动失败尝试一次。
我是 运行 flink 集群中的一个 flink 流作业。我需要模拟一个工作失败的场景。我在源代码中引入了损坏的事件。当该事件发生时,我看到作业抛出异常并且任务已从检查点重新启动。我设置了以下配置:
restart-strategy.fixed-delay.attempts: 1
restart-strategy.fixed-delay.delay: 5 s
但是这些配置没有兑现。即使在第一次尝试后,任务也会继续恢复。根据文件,第一次尝试后作业应该失败。我需要模拟工作失败的场景。怎么做?
最简单的方法是创建一个特定的作业,每次处理数据时都会抛出异常,例如在自定义 ProcessFunction
内部。我不知道你在那里做什么工作,但另一件事可能是发送不正确的输入数据,如果你从某个来源读取数据,比如 Kafka,这将导致工作失败。
可以设置
restart-strategy: none
在这种情况下,作业将直接失败,而不会尝试重新启动。
我也有类似的困惑。结合测试,我做了一些猜测。 restart-strategy.fixed-delay.attempts表示重启作业失败时的重试次数。在您的情况下,Flink 作业可以成功重启,之后,从源中获取损坏的事件并使作业失败。因此,即使在第一次尝试后,任务也会继续恢复。您可以关闭源或接收器以模拟作业失败,在这种情况下作业将仅重新启动失败尝试一次。