在Springboot上运行的Java/Spring批处理/Oracle编写的ETL作业的高可用性架构



应用程序:用java/Spring Batch/Oracle编写的ETL应用程序,运行在SpringBoot上

问题陈述:java作业中有几个长时间运行的SQL查询,查询执行是作业的最后一步。有时查询卡在DB级,DB没有响应,最终,查询被终止,作业必须重新开始。

现在我想实现(对于spring作业和非spring作业):

  1. 一种从故障点开始作业的方法,而不是从顶部开始。
  2. 高可用性架构,如果应用服务器停止响应,用户不必等待。类似于Hot-Hot架构(任何基于spring的解决方案都会很棒)
  1. 一种从故障点开始作业的方法,而不是从顶部开始。
如果您使用持久作业存储库,Spring Batch在默认情况下提供此功能。如果您重新启动失败的作业实例,Spring Batch将从最后一个失败步骤中的最后一个保存点重新启动(除非您将步骤配置为即使成功完成也可重新启动)
  1. 高可用性架构,如果应用服务器停止响应,用户不必等待。

如果您的数据库服务器没有响应,Spring Batch或任何其他工具都不能改善这里的情况。您可以做的是对您的步骤应用超时,并在超过超时时停止它。您可以在这里找到一个完整的代码示例:超时发生后重新启动步骤(或作业)

最新更新