我使用hikari与弹簧引导,本地测试,我可以看到50个活动的连接。在部署到云铸造厂之后,我只能看到10个活动连接。
最大-池-大小=50
看起来云铸造绑定服务正在试图覆盖我的应用程序的配置。如何在云铸造厂中配置这个号码?
也许有人从这个链接得到帮助,它说,如果您正在生产中运行严肃的应用程序,您需要配置DataSourceConfiguration。
服务器
https://spring.io/blog/2015/04/27/binding-to-data-services-with-spring-boot-in-cloud-foundry
发布于 2017-02-16 21:36:14
如果在项目中包含spring-boot-starter-cloud-connectors,则不使用Spring数据库属性。将自动创建和配置Java,除非您编写了Datasource代码来手动配置它。
正如您在连接器文档中所发现的,您可以编写类似这样的代码来配置连接属性,包括池大小。
@Bean
public DataSource dataSource() {
PoolConfig poolConfig = new PoolConfig(5, 30, 3000);
DataSourceConfig dbConfig = new DataSourceConfig(poolConfig, null);
return connectionFactory().dataSource("database-service-name", dbConfig);
}如果您想使用Boot属性而不是这样编写代码,您可以从项目中删除spring-boot-starter-cloud-connectors,并在CF上运行应用程序时使用Boot提供的属性配置Boot属性。如果以这种方式配置连接,则应该使用maximum-pool-size属性。
发布于 2017-02-08 14:27:55
我得去查Hikari。根据这篇文章,它是一个jdbc连接池。
那么,我假设您将Hikari部署为Cloud中的一个应用程序,并由此创建了一个CUPS服务。对吗?
不能通过CUPS定义修改服务。它只是创建该服务的一个实例。
尝试在bootstrap.yml中或通过在Hikari应用程序上设置环境变量来设置池大小,以传递默认值。您可能需要调整应用程序,以便在运行时接受这些变量。
如果这样做不起作用,您可能不得不创建自己的服务代理,或者生成一个瓷砖。这将为您提供操作服务的选项。
希望这能有所帮助!
发布于 2020-07-09 12:17:52
是的,云铸造连接器将覆盖您的属性,为了配置它,您必须声明这个回答中提到的bean。请注意,这方面的配置是有限的,因此云铸造引入了爪哇-克芬。您可以将此库添加到build.gradle中,如下所示:
implementation 'io.pivotal.cfenv:java-cfenv-boot:2.1.2.RELEASE'然后可以删除spring-cloud-spring-service-connector和spring-cloud-cloudfoundry-connector库。您在overriden下声明的任何配置现在都可以在application.properties下配置,就像在普通的spring引导项目中所做的那样。还要确保在清单中添加以下属性:
SPRING_PROFILES_ACTIVE: cloud
JBP_CONFIG_SPRING_AUTO_RECONFIGURATION: '{enabled: false}'请参考这个存储库,它提供了如何在redis中使用此方法的示例。
https://stackoverflow.com/questions/42081731
复制相似问题