我正在设置 Spring Cloud Data Flow 的一个实例。我已经运行了以下命令:
1. Run skipper server: java -jar spring-cloud-skipper-server-2.0.3.RELEASE.jar &
2. Run Dataflow server: java -jar spring-cloud-dataflow-server-2.1.2.RELEASE.jar \
--spring.datasource.url=jdbc:postgresql://10.136.66.44:8080/springclouddataflow \
--spring.datasource.username=springclouddataflow \
--spring.datasource.password=123456 \
--spring.datasource.driver-class-name=org.postgresql.Driver \
--server.port=80 &
Run Code Online (Sandbox Code Playgroud)
在第二步中,我使用的是 postgres 数据库,而不是默认的 h2。
我已经使用 Spring Batch 开发了一个 Spring Boot 作业来部署在这个平台上。该作业使用两个数据源:用于 Spring 的 springclouddataflow 和用于我的业务逻辑的任务元数据和 billrun。当我在本地运行应用程序时,它会按预期将元数据保存在 springclouddataflow 中,并将我的业务数据保存在 billrun 中。问题是当我尝试在 Spring Cloud Dataflow 中执行 de job 时。平台忽略我配置的业务逻辑数据库,只使用 springclouddataflow 数据库,它应该只存储元数据。
我在官方文档中搜索过。它解释了如何使用不同的数据库进行元数据存储以及如何在应用程序中配置多个数据库。我已按照说明进行操作,但没有成功。
应用程序属性
logging.level.org.springframework.cloud.task=debug
spring.datasource.initialization-mode=always
spring.batch.initialize-schema=always
spring.application.name=Bill Run
spring.datasource.jdbc-url=jdbc:postgresql://10.136.66.44:8080/springclouddataflow?useSSL=false
spring.datasource.username=springclouddataflow
spring.datasource.password=123456
spring.datasource.driver-class-name=org.postgresql.Driver
app.datasource.jdbc-url=jdbc:postgresql://10.136.66.44:8080/billrun?useSSL=false
app.datasource.username=springclouddataflow
app.datasource.password=123456
app.datasource.driver-class-name=org.postgresql.Driver
Run Code Online (Sandbox Code Playgroud)
数据源配置
@Configuration …Run Code Online (Sandbox Code Playgroud)