如何在不使用Spring Boot的情况下将Spring Batch与Spring Cloud Data Flow Server集成
基于JBoss运行的Spring Batch与Spring Cloud Data Flow集成方案
存在可直接落地的集成方案,无需将现有运行在JBoss中的Spring Batch应用改造为独立可启动的Spring Boot应用,具体实现逻辑如下:
核心适配思路
Spring Cloud Data Flow(SCDF)本身支持纳管外置部署的非Spring Boot批处理应用,核心是打通两个关键链路:统一Spring Batch元数据存储、任务生命周期事件上报,不需要对现有批处理业务逻辑做大幅调整。
具体集成步骤
- 统一元数据库配置
将JBoss上运行的Spring Batch应用、你部署的SCDF Server实例配置为连接同一个Spring Batch元数据库,所有Job的执行状态、步骤进度、执行参数等数据都会统一写入该库,SCDF可直接读取库中数据完成任务状态的可视化展示。
注意需保证两端的Spring Batch核心依赖版本尽量一致,避免元数据表结构不兼容导致的数据读取异常 - 引入SCDF任务客户端依赖
无需改造现有应用为Spring Boot架构,仅需为现有Spring Batch项目引入spring-cloud-starter-dataflow-task适配依赖,在配置文件中添加SCDF Server的通信地址、当前批处理任务的唯一标识即可,适配依赖会自动完成任务启动、结束、异常等生命周期事件的上报。 - SCDF端注册外置任务
在SCDF控制台注册类型为external的批处理任务,填写和JBoss端应用配置一致的任务唯一标识。如果仅需监控能力,无需额外配置触发规则,注册完成后SCDF会自动同步对应任务的所有执行数据。
可选扩展能力
- 若需要通过SCDF直接触发JBoss上的批处理任务,可为现有Spring Batch应用暴露一个HTTP触发接口,接收SCDF的调用请求启动对应Job,注册外置任务时将该接口地址配置到SCDF的触发规则中即可。
- 若需要在SCDF控制台直接查看任务执行日志,可将JBoss应用的日志输出配置为和SCDF使用的统一日志采集组件对接即可。
注意事项
建议先在测试环境完成依赖引入、元数据同步验证,确认现有批处理业务逻辑运行无异常后再上线生产环境集成。
内容的提问来源于stack exchange,提问作者rockycres
相关产品推荐
相关产品推荐

