仅批处理模式
本案例介绍如何使用 Spring Batch(和 Spring Cloud Task)配置 Spring Cloud Data Flow,而不使用 Spring Cloud Streams。通过这样做,您可以使用 Spring Cloud Data Flow 来控制您的批处理作业和任务,而无需其他功能。
有关使用 Spring Cloud Data Flow 管理批处理作业的更多信息,请参阅批处理开发者指南。
先决条件
仅限批处理模式只需要 Spring Cloud Data Flow 服务器。您不需要 Spring Cloud Data Flow Shell 或 Spring Cloud Skipper,但您仍然可以使用它们。
要将 Spring Cloud Data Flow 用于批处理而不是流处理,您可以通过定义一些控制 Spring Cloud Data Flow 服务器的设置来实现。特别是,您需要
SPRING_CLOUD_DATAFLOW_FEATURES_STREAMS_ENABLED=false
来关闭流的编排。SPRING_CLOUD_DATAFLOW_FEATURES_SCHEDULES_ENABLED=false
来关闭计划任务,因为批处理不支持本地环境的计划任务。SPRING_CLOUD_DATAFLOW_FEATURES_TASKS_ENABLED=true
来启用批处理。
批处理需要外部数据存储。要设置外部数据存储,您需要指定数据库的连接设置。我们将在下一节中介绍这些设置。有关更多详细信息,请参阅 Spring Batch 主要开发者指南。
Spring Cloud Data Flow 支持 MariaDB、HSQLDB 和 PostgreSQL,无需额外配置。您可以通过额外配置使用其他数据库。有关更多详细信息,请参阅 Spring Cloud Data Flow 参考指南。
安装服务器
要安装 Spring Cloud Data Flow 服务器,请运行以下命令
wget https://repo.maven.apache.org/maven2/org/springframework/cloud/spring-cloud-dataflow-server/2.11.3/spring-cloud-dataflow-server-2.11.3.jar
设置环境变量
您可以使用环境变量来启用和禁用功能,以及配置外部数据存储。以下列表显示了如何设置所需的环境变量
export SPRING_CLOUD_DATAFLOW_FEATURES_STREAMS_ENABLED=false
export SPRING_CLOUD_DATAFLOW_FEATURES_SCHEDULES_ENABLED=false
export SPRING_CLOUD_DATAFLOW_FEATURES_TASKS_ENABLED=true
export spring_datasource_url=jdbc:mariadb://localhost:3306/task
export spring_datasource_username=root
export spring_datasource_password=password
export spring_datasource_driverClassName=org.mariadb.jdbc.Driver
export spring_datasource_initialization_mode=always
重要提示:不要同时禁用流处理和批处理。Spring Cloud Data Flow 要求至少启用其中之一。
如果您还没有名为 task
的数据库,则需要创建一个。或者,您可以将数据源 URL 中的数据库名称更改为您存储任务的数据库的名称。
为了演示,我们使用 root
和 password
作为用户名和密码。您永远不应该在实际应用程序中这样做。
运行服务器
在环境变量中设置配置详细信息后,您可以通过运行以下命令以仅限批处理模式运行 Spring Cloud Data Flow 服务器
java -jar spring-cloud-dataflow-server-2.11.3.jar
查看仪表板
服务器启动后,您可以在 Web 浏览器中访问 http://localhost:9393/dashboard
来查看 Spring Cloud Data Flow 仪表板。您可以在那里创建和管理批处理作业。有关更多详细信息,请参阅批处理功能指南主题。下图显示了 Spring Cloud Data Flow 仪表板的“作业”页面,您可以在其中添加批处理作业。
使用 Spring Cloud Data Flow Shell
您可以使用 Spring Cloud Data Flow Shell。有关更多信息,请参阅工具页面中的 Shell 主题。