简介
最近因为工作需要使用到spring batch框架的一些功能,spring batch是spring的一个批处理框架,一般用来处理大量数据转换的任务,而且这些业务逻辑对于用户交互方面的要求很低。所以这些任务大多是在后台运行的进程。但是对于每个批处理任务来说,它处理的任务情况,包括进度、里面失败的元素等等是我们所关心的。如果有一个可视化的工具可以来查看每个任务执行的情况这样对于验证批处理工作还是很有帮助的。实际上spring batch也提供了这么一个可视化的管理工具,叫做spring batch admin。这里,我们就详细的描述一下怎么在具体的应用里安装和配置它。
安装
spring batch admin是一个基于web的应用。我们可以将它当作一个普通的web应用。因此如果要运行它的话,必然要将它安装部署到一个web服务器上。所以安装它的第一步就需要安装和配置好一个服务器。目前常用的支持它的服务器包括有jetty, tomcat。这里以jetty为例,tomcat的配置也类似。
服务器安装配置
jetty
jetty的下载路径如下:http://download.eclipse.org/jetty/ 目前最新版本的jetty是9.2.6。我们就选择这个版本,如下图:
在下载之后我们将他们解压到某个目录下就可以了。解压后它的目录结构如下:
它的目录结构和tomcat服务器有点类似。我们一般写好的应用可以直接放到webapps目录下面进行部署。其中的demo-base目录提供了一个部署的示例,我们可以参考这个来部署自己的web应用包。它的安装很简单,这样整个的jetty服务器安装就完成了。在后面部署的时候我们还需要考虑到在webapps目录下的一些相关配置。
tomcat
tomcat服务器的安装配置基本上和上述jetty的一样,我们首先去如下网站下载tomcat服务器:http://tomcat.apache.org/download-80.cgi,该下载页面如下图:
将tomcat服务器文件解压后,其目录结构如下:
和jetty服务器一样,我们后面部署的时候都需要将生成的war包和配置文件放到其中的webapps目录下。
spring batch admin下载和安装
spring batch admin的下载地址如下:http://docs.spring.io/downloads/nightly/release-download.php?project=BATCHADM
下面是它的整个下载列表:
从图中可以看到,目前最新的版本是spring batch admin 1.3.0。我们可以选择下载这个版本。将spring batch admin解压到本地之后,它的目录结构如下:
这里有一个sample的目录,我们可以直接使用这个来部署到服务器的环境中。所以剩下的工作就是需要编译sample工程并打成war包。在sample目录下面有spring-batch-admin-parent和spring-batch-admin-sample两个目录,我们需要首先编译spring-batch-admin-parent,然后再编译spring-batch-admin-sample。首先进入spring-batch-admin-parent目录,然后执行如下的编译命令:
mvn install
要执行上述的命令需要安装编译和打包工具maven。关于maven的安装配置可以参考这篇文章。
在执行完parent目录下的编译之后再进入spring-batch-admin-sample目录,执行编译命令:
mvn install
编译结束后该目录下的内容如下:
在该目录下的target文件夹里有一个spring-batch-admin-sample-1.3.0.RELEASE.war文件,这就是我们编译后打好的包。
现在我们将这个包拷贝到jetty服务器的webapps目录下。然后创建一个和war包同名的xml文件,在这里这个文件名为:spring-batch-admin-sample-1.3.0.RELEASE.xml。它的内容如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd"> <Configure class="org.eclipse.jetty.webapp.WebAppContext"> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <!-- Required minimal context configuration : --> <!-- + contextPath --> <!-- + war OR resourceBase --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <Set name="contextPath">/spring-batch-admin-sample-1.3.0.RELEASE</Set> <Set name="war"><Property name="jetty.webapps" default="."/>/spring-batch-admin-sample-1.3.0.RELEASE.war</Set> </Configure>
这部分内容比较简单,它和tomcat服务器的部署一样,主要用来说明部署对应的包和通过web url访问的路径。
现在我们通过如下命令启动jetty服务器:
java -jar start.jar
如果我们需要启动tomcat服务器的话,则需要进入到tomcat服务器的bin目录下,执行如下命令:
./startup.sh
然后打开浏览器并输入如下的地址:http://localhost:8080/spring-batch-admin-sample-1.3.0.RELEASE/,我们将看到spring batch admin的启动界面:
这个时候我们可以看到的是各种资源映射的信息,通过访问jobs, executions,也可以看到当前的job列表以及他们的执行情况。
这样,一个基本的spring batch admin就安装好了。
配置修改
前面对spring batch admin的安装用到了数据库,不过它默认的数据库是基于内存的hsql数据库。这样一旦我们将服务器停止了,数据库里面的数据也就丢失了。在实际的spring batch应用中,我们是需要将spring batch 的meta data保存在持久化的数据库里的,比如mysql, postgresql等。所以,我们需要修改配置,使用别的数据库。
数据库的选择和配置比较简单,在spring batch admin的sample工程下面,如下目录:/spring-batch-admin-sample/src/main/resources
在这个目录下面有一个batch-default.properties文件。可以在这里设置默认的数据库连接信息,一个典型的连接mysql 数据库连接信息如下:
# Default placeholders for database platform independent features batch.remote.base.url=http://localhost:8080/spring-batch-admin-sample # Non-platform dependent settings that you might like to change # batch.job.configuration.file.dir=target/config # for MySQL: batch.jdbc.driver=com.mysql.jdbc.Driver batch.jdbc.url=jdbc:mysql://localhost:3306/test batch.jdbc.user=root batch.jdbc.password=test batch.jdbc.testWhileIdle=true batch.jdbc.validationQuery=SELECT 1 batch.schema.script=classpath:/org/springframework/batch/core/schema-mysql.sql batch.drop.script=classpath*:/org/springframework/batch/core/schema-drop-mysql.sql batch.business.schema.script=classpath:/business-schema-mysql.sql batch.database.incrementer.class=org.springframework.jdbc.support.incrementer.MySQLMaxValueIncrementer
修改完这个文件之后,因为访问的数据库变了,所以需要引用的数据库访问驱动也对应的发生了变化。我们可以通过修改sample工程的pom文件来引入对应的数据库访问驱动库。我们需要在该工程的pom.xml文件中添加如下的依赖项:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.25</version> </dependency>
修改完上述地方之后,再执行maven编译命令: mvn install。我们将新编译后的包再部署到服务器。重启一下服务器之后,我们启动一个自定义的batch job,这个batch job的job repository所引用的数据源和我们这里spring batch admin配置的数据源一致。这个时候我们再启动spring batch admin,将看到启动的spring batch job信息和执行状态显示在spring batch admin页面中:
这样,spring batch admin的基本安装和配置就完成了。
相关推荐
- 配置Spring Batch Admin的context.xml文件,指定批处理服务器的位置和作业元数据存储位置。 - 启动应用,访问预设的URL即可看到管理界面。 5. **使用指南** - 注册作业:将Spring Batch的作业定义注册到Spring...
附录部分提供了关于如何搭建开发环境和安装Spring Batch Admin的实用指南。通过这些指南,开发者可以快速开始构建和测试自己的批处理应用程序。 在理解了Spring Batch的基本原理和高级特性后,开发者可以利用这一...
另外,Spring Batch还支持与Spring Boot Admin集成,提供更丰富的UI界面来查看和控制作业执行。 总的来说,SpringBoot整合Spring Batch为开发高效、可扩展和易管理的批量处理系统提供了强大的工具集。无论是处理...
- **Spring Batch Admin**:提供Web界面监控作业状态,已不再维护,但可以使用其他工具如Actuator或自建监控系统。 - **Spring Boot Actuator**:集成Spring Batch,提供API接口获取作业信息。 - **Spring Cloud ...
启动项目:如果使用的是上一步中级的数据库建立库语句,可以直接启动,如果是使用自己的数据库,则修改/spring-batch-admin-backend/src/main/resources/application-localhost.properties里面是数据配置信息,然后...
此外,还可以集成Spring Boot Actuator或Spring Batch Admin等工具进行更高级的监控。 7. **分片和并行处理**:对于大型数据集,Spring Batch支持将工作拆分为多个并行的子任务,即分片(Chunking)。通过这种方式...
- **Spring Batch Admin**: 一个用于监控和管理 Spring Batch 作业的应用,可以查看 Job 的状态、重启失败的 Job 等。 - **Remote Partitioning**: 支持远程监控和管理,便于在分布式环境中部署。 6. **集成其他 ...
这在项目中可能通过Spring Boot Actuator或者Spring Batch Admin实现。 【总结】 "bank-spring-batch"项目利用Spring Batch框架,设计了一个具备多处理器功能的批量处理解决方案,能够高效地处理银行相关的批量...
spring-batch-admin-spring-boot 考虑像Spring为Spring Batch Admin用户推荐的那样迁移到Spring Cloud Data Flow。 参见 这是团队的标准应用程序的Spring Boot压缩程序。 使用此胶囊,可以将Spring Batch Admin...
对Spring框架有深入理解,特别是SpringBatch的配置和作业设计;还要熟悉Java多线程和调度原理,以便于有效地使用Quartz。此外,了解数据库操作和SQL语句也是必不可少的,因为数据的读取和写入通常与数据库紧密相关。...
在本示例中,Spring Batch 使用HSQLDB的内存模式,这使得整个批处理过程在内存中完成,数据读取和写入速度快,且不涉及实际数据库的安装和配置。以下是一般流程: 1. **定义作业和步骤**:创建一个Spring Batch作业...
Spring Batch Admin 是一个后端采用spring boot 2, spring security , oauth2, Spring data jpa 作为基础框架,集成了quartz 提供调度能力,集成了Spring batch 提供批处理能力的管理系统。系统旨… 各领域数据集,...
此外,可以通过 Spring Batch Admin 或其他工具来可视化和管理作业。 **七、示例代码** 在提供的 `spring-batch-master` 压缩包中,可能包含了一些示例代码,这些代码展示了如何使用 Spring Batch 创建、配置和运行...
Batch 作业的理想平台。 它还可用于监视在其他进程中运行的作业。 有关更多详细信息,请参阅主要内容。 开始使用 SpringSource 工具套件 (STS) 这是最快的入门方法。 它需要互联网连接才能下载,并访问 Maven 存储库...
在项目“spring-batch-accessDb-to-mongodb-master”中,除了核心的批处理逻辑,可能还包括了配置文件(如XML或Java配置),它们定义了批处理作业的完整生命周期,包括启动、执行和结束。此外,可能还有测试代码来...
通过JobRepository,Spring Batch可以记录Job和Step的运行日志和状态,便于通过监控工具(如Spring Boot Actuator、Spring Batch Admin等)查看作业进度和诊断问题。 6. **分片和并行处理** Spring Batch 支持...
BeanFactory是Spring容器的基础,它可以管理Bean的生命周期和依赖关系,实现控制反转。 3. **依赖注入(DI)**: DI是Spring的核心特性,允许组件之间通过接口而非硬编码来依赖彼此。Spring通过构造器注入、设值...
- **Core Container**:核心容器,包括BeanFactory和ApplicationContext,它们是Spring框架的基础,负责管理对象的生命周期和依赖注入。 - **Data Access/Integration**:数据访问/集成,支持JDBC、ORM(Object-...
**Spring配置**:接下来,在Spring的配置文件中,需要配置`DataSource`和`JdbcTemplate`。`DataSource`负责数据库连接的管理和分配,而`JdbcTemplate`则依赖于`DataSource`来执行数据库操作。配置示例如下: ```xml...
Batch-scheduler是一个用于批处理任务调度的系统,其部署文档主要涵盖了从源代码获取、编译、数据库配置、项目启动以及在IDEA中导入和运行的步骤。以下是对这些知识点的详细说明: 1. **Git源代码管理**: - 使用`...