Spring boot Cloud Foundry绑定服务/cups数据源连接数

Spring boot Cloud Foundry绑定服务/cups数据源连接数,spring-boot,hikaricp,cloud-foundry,spring-cloud-connectors,Spring Boot,Hikaricp,Cloud Foundry,Spring Cloud Connectors,我正在使用hikari和spring boot,在本地测试中,我可以看到50个活动连接。部署到CloudFoundry后,我只能看到10个活动连接 spring.datasource.hikari.maximum pool size=50 看起来云铸造绑定服务正在试图覆盖我的应用程序的配置。如何在cloud foundry中配置此号码 也许有人会从这个链接中得到帮助,它说,如果您正在生产中运行严肃的应用程序,您需要配置DataSourceConfiguration 我不得不去查Hikari。据

我正在使用hikari和spring boot,在本地测试中,我可以看到50个活动连接。部署到CloudFoundry后,我只能看到10个活动连接

spring.datasource.hikari.maximum pool size=50

看起来云铸造绑定服务正在试图覆盖我的应用程序的配置。如何在cloud foundry中配置此号码

也许有人会从这个链接中得到帮助,它说,如果您正在生产中运行严肃的应用程序,您需要配置DataSourceConfiguration


我不得不去查Hikari。据了解,这是一个jdbc连接池

我假设,您将Hikari部署为CloudFoundry中的一个应用程序,并由此创建了一个CUPS服务。对吗

您不能通过CUPS定义修改服务。它只是为您创建该服务的一个实例

尝试在
bootstrap.yml
中设置池大小,或者在Hikari应用程序上设置环境变量以传递默认值。您可能需要调整应用程序以在运行时接受这些变量

如果这不起作用,您可能必须创建自己的service broker,或者生成一个磁贴。这将为您提供操作服务的选项


希望这有帮助

我不得不去查Hikari。据了解,这是一个jdbc连接池

我假设,您将Hikari部署为CloudFoundry中的一个应用程序,并由此创建了一个CUPS服务。对吗

您不能通过CUPS定义修改服务。它只是为您创建该服务的一个实例

尝试在
bootstrap.yml
中设置池大小,或者在Hikari应用程序上设置环境变量以传递默认值。您可能需要调整应用程序以在运行时接受这些变量

如果这不起作用,您可能必须创建自己的service broker,或者生成一个磁贴。这将为您提供操作服务的选项


希望这有帮助

如果在项目中包含
spring boot starter云连接器
,则不会使用spring boot数据库属性。SpringCloudConnectors将自动创建和配置
数据源
bean,除非您编写Java代码来手动配置它

如中所示,您可以编写类似这样的代码来配置连接属性,包括池大小

@Bean
public DataSource dataSource() {
    PoolConfig poolConfig = new PoolConfig(5, 30, 3000);
    DataSourceConfig dbConfig = new DataSourceConfig(poolConfig, null);
    return connectionFactory().dataSource("database-service-name", dbConfig);
}

如果您想使用引导属性而不是像这样编写代码,当应用程序在CF上运行时,您可以从项目中删除
spring boot starter云连接器
,并使用boot提供的配置启动属性。如果您以这种方式配置连接,则应遵守
最大池大小
属性

如果在项目中包含
spring boot starter云连接器
,则不会使用spring boot数据库属性。SpringCloudConnectors将自动创建和配置
数据源
bean,除非您编写Java代码来手动配置它

如中所示,您可以编写类似这样的代码来配置连接属性,包括池大小

@Bean
public DataSource dataSource() {
    PoolConfig poolConfig = new PoolConfig(5, 30, 3000);
    DataSourceConfig dbConfig = new DataSourceConfig(poolConfig, null);
    return connectionFactory().dataSource("database-service-name", dbConfig);
}

如果您想使用引导属性而不是像这样编写代码,当应用程序在CF上运行时,您可以从项目中删除
spring boot starter云连接器
,并使用boot提供的配置启动属性。如果您以这种方式配置连接,则应遵守
最大池大小
属性

是的,CloudFoundry连接器将覆盖您的属性,要配置它,您必须声明本文中提到的bean。请注意,这方面的配置是有限的,因此引入了CloudFoundry。您可以在build.gradle中添加此库,如下所示:

implementation 'io.pivotal.cfenv:java-cfenv-boot:2.1.2.RELEASE'
然后,您可以删除
spring-cloud-spring服务连接器
spring-cloudfoundry连接器
库。您在覆盖bean下声明的任何配置现在都可以在
application.properties
下配置,就像您在普通spring引导项目中所做的那样。还要确保在清单中添加以下属性:

SPRING_PROFILES_ACTIVE: cloud
JBP_CONFIG_SPRING_AUTO_RECONFIGURATION: '{enabled: false}'

请参阅此示例,其中提供了如何将其用于redis的示例。

是的,cloud foundry connector将覆盖您的属性,要对其进行配置,您必须声明本文中提到的bean。请注意,这方面的配置是有限的,因此引入了CloudFoundry。您可以在build.gradle中添加此库,如下所示:

implementation 'io.pivotal.cfenv:java-cfenv-boot:2.1.2.RELEASE'
然后,您可以删除
spring-cloud-spring服务连接器
spring-cloudfoundry连接器
库。您在覆盖bean下声明的任何配置现在都可以在
application.properties
下配置,就像您在普通spring引导项目中所做的那样。还要确保在清单中添加以下属性:

SPRING_PROFILES_ACTIVE: cloud
JBP_CONFIG_SPRING_AUTO_RECONFIGURATION: '{enabled: false}'

参考这个示例,它提供了一个如何在redis中使用它的示例。

我曾尝试在bootstrap.yml中进行设置并设置环境变量。我也尝试过使用dhcp和c3p0,似乎所有这些数据库连接池设置都被cloud foundry service/cups绑定覆盖了。如果您查看
cf cups--help
,您会注意到其中没有一个选项可以操作实际的服务细节。必须将服务本身配置为设置默认值。您可能需要为它编写一个服务代理。我确实尝试在bootstrap.yml中进行设置并设置环境变量。我也尝试过使用dhcp和c3p0,似乎所有这些数据库连接池设置都被cloud foundry service/cups绑定覆盖了。如果您查看
cf cups--help
,您会注意到其中没有一个选项可以操作实际的服务细节。必须对服务本身进行配置