亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring Cloud Data Flow 忽略由 spring batch app 配置的數據源

Spring Cloud Data Flow 忽略由 spring batch app 配置的數據源

精慕HU 2023-04-26 17:11:01
我正在設置 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 &在第二步中,我使用的是 postgres 數據庫,而不是默認的 h2。我已經使用 spring batch 開發了一個 spring boot 作業以部署在這個平臺中。該作業使用兩個數據源:用于 Spring 的 springclouddataflow 和用于我的業務邏輯的任務元數據和 billrun。當我在本地運行該應用程序時,它會按預期將元數據保存在 springclouddataflow 中,并將我的業務數據保存在 billrun 中。問題是當我嘗試在 Spring Cloud Dataflow 中執行 de job 時。該平臺忽略了我配置的業務邏輯數據庫,只使用了應該只存儲元數據的 springclouddataflow 數據庫。我在官方文檔中搜索過。它解釋了如何使用不同的數據庫進行元數據存儲以及如何在應用程序中配置多個數據庫。我已按照說明進行操作但沒有成功。application.propertieslogging.level.org.springframework.cloud.task=debugspring.datasource.initialization-mode=alwaysspring.batch.initialize-schema=alwaysspring.application.name=Bill Runspring.datasource.jdbc-url=jdbc:postgresql://10.136.66.44:8080/springclouddataflow?useSSL=falsespring.datasource.username=springclouddataflowspring.datasource.password=123456spring.datasource.driver-class-name=org.postgresql.Driverapp.datasource.jdbc-url=jdbc:postgresql://10.136.66.44:8080/billrun?useSSL=falseapp.datasource.username=springclouddataflowapp.datasource.password=123456app.datasource.driver-class-name=org.postgresql.Driver數據源配置@Configurationpublic class DatasourceConfiguration {    @Bean(name = "appDatasource")    @ConfigurationProperties(prefix = "app.datasource")    public DataSource sourceDataSource() {        return DataSourceBuilder.create().build();    } 我試過將數據庫屬性作為參數傳遞給任務:當我查看數據源時,只有數據保存在 springclouddataflow 中。如何告訴 spring cloud 數據流使用我的應用程序數據源(billrun)?
查看完整描述

2 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

看起來您正在自定義 Spring Cloud Data Flow 服務器以使用我認為不需要的應用程序數據源。

您可以像上面發布的那樣啟動您的 SCDF 服務器:

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?&

并且,讓您的 Spring 批處理應用程序將其數據源屬性作為 Spring Boot 屬性傳遞,而不是像上面那樣使用自定義數據源配置。


查看完整回答
反對 回復 2023-04-26
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

只是你嘗試在你的應用程序中添加動態數據源,然后你在需要的地方自動連接你的動態數據源


@Configuration

public class DataSourceConfig {


    @Bean(name = "testingDataSource")    

    @ConfigurationProperties(prefix = "testing.datasource") 

    public DataSource testDataSource() { 

        return DataSourceBuilder.create().build(); 

    }

    

    

    @Bean(name = "testingJdbcTemplate") 

    public JdbcTemplate testJdbcTemplate(@Qualifier("testingDataSource") DataSource dsMySQL) {

        return new JdbcTemplate(dsMySQL);

    }

    

}

測試:數據源:driverClassName:'com.mysql.cj.jdbc.Driver' jdbc-url:'jdbc:mysql://localhost/dbName' 用戶名:'uname' 密碼:'passwordcd'


查看完整回答
反對 回復 2023-04-26
  • 2 回答
  • 0 關注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號