Spring Cloud Data Flow Server для Cloudfoundry - внешний источник данных - PullRequest
0 голосов
/ 23 октября 2018

Использование: Pivotal Cloudfoundry v2.x, Spring Cloud Data Flow Server v1.6.2.RELEASE, SQL Server 2016.

Не отображается конфигурация источника данных сервера для успешного создания источника данных, если он не является службойпривязан к заявке в рамках ПКФ.

База данных SQL Server не является услугой, предоставляемой на нашем рынке PCF.Я перестроил серверное приложение и добавил jar драйвера jdbc для SQL Server в путь к классам.Я также включил конфигурацию источника данных:

---
applications: 
- path: spring-cloud-dataflow-server-cloudfoundry-1.6.2.RELEASE.jar
  name: dataflow-server
  host: dataflow-server
  memory: 4096M
  disk_quota: 2048M
  no-route: false
  no-hostname: false
  health-check-type: 'port' 
  buildpack: java_buildpack_offline
  env: 
    JAVA_OPTS: -Dhttp.keepAlive=false
    JBP_CONFIG_CONTAINER_CERTIFICATE_TRUST_STORE: '{enabled: true}' 
    SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_SPACE: channing
    SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_STREAM_APP_NAME_PREFIX: channing
    SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_URL: https://api.pcf.com
    SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_DOMAIN: pcf.com
    SPRING_APPLICATION_NAME: dataflow-server
    SPRING_DATASOURCE_URL: jdbc:sqlserver://nonpcf.sqlserver.com\\DBINSTANCE:1713;databaseName=SCDF_DEV 
    SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.microsoft.sqlserver.jdbc.SQLServerDriver
    SPRING_DATASOURCE_USERNAME: username
    SPRING_DATASOURCE_PASSWORD: password
  services: 
    - config-server
    - rabbit
  security: 
    basic: 
      enabled: true
      realm: Spring Cloud Data Flow
  spring: 
    cloud: 
      dataflow: 
        features: 
          analytics-enabled: false

Ошибка возникает во время запуска приложения с указанием неразрешенной зависимости, когда нет уникального экземпляра javax.sql.DataSource, доступного для внедрения.

Здесьэто какая-то трассировка стека:

2018-10-23T09:39:14.365-06:00 [APP/PROC/WEB/0] [OUT] Caused by: org.springframework.cloud.CloudException: No unique service matching interface javax.sql.DataSource found. Expected 1, found 0
2018-10-23T09:39:14.365-06:00 [APP/PROC/WEB/0] [OUT] at org.springframework.cloud.Cloud.getSingletonServiceConnector(Cloud.java:197) ~[spring-cloud-connectors-core-2.0.2.RELEASE.jar!/:na]
2018-10-23T09:39:14.365-06:00 [APP/PROC/WEB/0] [OUT] at org.springframework.cloud.config.java.CloudServiceConnectionFactory.dataSource(CloudServiceConnectionFactory.java:56) ~[spring-cloud-spring-service-connector-2.0.2.RELEASE.jar!/:na]
2018-10-23T09:39:14.365-06:00 [APP/PROC/WEB/0] [OUT] at org.springframework.cloud.dataflow.server.cloudfoundry.config.DataSourceCloudConfig.scdfCloudDataSource(DataSourceCloudConfig.java:47) ~[spring-cloud-dataflow-server-cloudfoundry-autoconfig-1.6.2.RELEASE.jar!/:1.6.2.RELEASE]

Это специально?Как мы можем связать сервер PCF SCDF с источником данных, который не является резидентным в фонде?

1 Ответ

0 голосов
/ 25 октября 2018

CF-сервер Spring Cloud Data Flow основан на мнении о том, что Spring Cloud Connector полагается на datasource и настройку пула соединений .

Поскольку мы делаем это намеренно, чтобы воспользоватьсяиз автоматизации, предоставляемой библиотекой, у нас нет прямой возможности отключить ее в самом SCDF.

Однако есть возможность отключить Spring Cloud Connector от полного вмешательства, и эта опциядоступно как свойство Spring Boot (т. е. spring.cloud=false), которое также применимо к SCDF.

С помощью этого свойства, установленного на CF-сервере, вы сможете создать пул соединений, используя свойства SPRING_DATASOURCE_*, например, как это определено в manifest.yml выше.

ОБНОВЛЕНИЕ

Справочная информация : декларативные переопределения datasource и Spring Cloud Connector (в пути к классам) являются взаимоисключающими и не могут работать вместе в любом качестве.

Следовательно, при настройке CF-сервера рекомендуется придерживаться одной модели.Самым простым решением в этом случае, конечно, является полное отключение разъема.

...