在springboot上用java/spring batch/oracle编写etl作业的高可用性体系结构

zzzyeukh  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(541)

应用程序:用java/spring batch/oracle编写的etl应用程序,在springboot上运行
问题陈述:一个java作业中有几个长时间运行的sql查询,查询执行是作业的最后一步。有时查询在db级别被卡住,db没有响应,最终,查询被终止,作业必须重新启动。
现在我想实现(对于spring作业和非spring作业):
一种在失败点而不是从最高层开始工作的方法。
高可用性体系结构,因此如果应用程序服务器停止响应,用户不必等待。类似于hot架构的东西(任何基于spring的解决方案都会很好)

2vuwiymt

2vuwiymt1#

一种在失败点而不是从最高层开始工作的方法。
springbatch在默认情况下提供了这一点,因为您使用的是持久性作业存储库。如果重新启动失败的作业示例,spring批处理将从上一个失败步骤中的最后一个保存点重新启动(除非您将步骤配置为即使成功完成也可以重新启动)
高可用性体系结构,因此如果应用程序服务器停止响应,用户不必等待。
如果您的数据库服务器没有响应,那么springbatch或任何其他工具都不能改善这里的情况。你能做的就是对你的步骤应用一个超时,如果超过了这个超时就停止它。您可以在这里找到一个完整的代码示例:超时后重新启动步骤(或作业)

相关问题