spring-batch - Spring Batch / Spring Batch 管理系统升级
问题描述
我们有一个跨集群中的 10 台服务器运行的 JEE 应用程序。它利用 Spring Batch (2.2.7) 和 Spring Batch Admin(基于 1.3.0,稍作修改)每晚执行大约 100 个作业。批处理作业执行的控制是通过 spring batch admin rest API。大约一半的作业是分区的,将负载分布在集群周围。
现在我们正在考虑迁移到新的 Spring 版本以取代 JEE 技术并使用 Spring Data(JPA) 等。然而,由于各种原因,我们打算保持单体方法在服务器集群上运行。
我正在调查 Spring Batch / Spring Batch Admin 前端的最佳前进路径。我想迁移到 Spring Batch 4.1。其中一些问题是:
- 数据库架构更改将导致迁移现有数据时出现一些问题。
- 由于我们使用的是 Spring Boot,我们将禁用批处理自动执行。
- 我们的工作都是在 xml 文件中定义的。工作迁移有必要吗?
Spring Batch Admin 怎么办?由于我们的应用程序结构,我认为我们不想走 Spring Cloud Flow 的方向。我看到有一个基于新技术的 2.0M 版本的 Spring Batch Admin github。
我正在寻找有关方法的建议和前进的可能陷阱。
谢谢
解决方案
在下面解决您的一些问题:
- 您指的是什么数据库架构更改?2.2.x 版本的元数据模式看起来与4.1.x 版本的元数据模式相同。
- Spring Boot 支持使用 config 禁用启动时自动执行
spring.batch.job.enabled=false
- 支持 XML 配置文件 - 事实上,它们在 Spring Batch 中比在其他 Spring 项目中更受欢迎,以至于文档提供了 Java 和 XML 配置示例。
- 不需要 XML 配置文件迁移。
xsd
自早期版本以来的所有文件都包含在 spring-batch-core jar中,实际上即使在 Spring Batch 4 中,默认值spring-batch.xsd
也是来自版本 3的文件(版本 4 中没有新文件)。 Spring Batch Admin
已于2017 年 12 月 31 日达到使用寿命。标签已在2.0.0.M1
大约 4 年前被剪掉。正如它在一些地方所记录的那样,正在用明确的迁移指南Spring Batch Cloud Data Flow
替换它。但是没有什么能阻止您继续用于监控目的,因为它基于未更改的元数据模式。我已经使用过它,它可以很好地用于 Spring Batch 3 和 Spring Batch 4 版本的监控。Spring Batch Admin
推荐阅读
- .net - 尝试向用户添加身份角色时收到程序错误
- graphql - 空手道 API :: 通过 GraphQL POST 请求发送图像(突变)
- css - Chrome 打印 - 以厘米为单位声明的页面大小溢出
- google-chrome - Chrome 开发工具视口宽度不同(调整窗口值与设备工具栏值)
- java - 编辑片段中的列表视图对象
- reactjs - 在启用/禁用按钮之间切换不起作用
- javascript - 如何在独立的 *.js 脚本中使用 js-cookie?
- sandbox - Clickatell 消息仅在消息包含单词“test”时发送
- python - 用于连接到多个网络设备并针对其运行配置运行命令的脚本
- python - 如何使用 paramiko 从远程 linux 文件中删除回车