0

Ich benutze Hikari mit Spring Boot, lokale Tests Ich kann 50 aktive Verbindungen sehen. Nach der Bereitstellung in der Cloud Foundry kann ich nur 10 aktive Verbindungen sehen.Cloud Foundry Bind Dienste/Becher Datenquelle Anzahl der Verbindungen

spring.datasource.hikari.maximum-pool-size = 50

Scheint, wie Cloud Foundry bindet Dienst versucht, meine Anwendung der Konfiguration zu überschreiben. Wie kann diese Nummer in der Cloud Foundry konfiguriert werden?

vielleicht jemand Hilfe über diesen Link erhalten, heißt es, wenn Sie in der Produktion ernsthafte Anwendung ausführen, müssen Sie DataSourceConfiguration konfigurieren

http://cloud.spring.io/spring-cloud-connectors/spring-cloud-spring-service-connector.html#_relational_database_db2_mysql_oracle_postgresql_sql_server

https://spring.io/blog/2015/04/27/binding-to-data-services-with-spring-boot-in-cloud-foundry

Antwort

1

Wenn Sie in Ihrem Projekt spring-boot-starter-cloud-connectors einschließen, werden die Spring Boot-Datenbankeigenschaften nicht verwendet. Spring Cloud Connectors erstellt und konfiguriert die Bean Datasource automatisch, es sei denn, Sie schreiben den Java-Code, um ihn manuell zu konfigurieren.

Wie Sie in der Connectors docs gefunden haben, können Sie Code wie diesen schreiben, um die Verbindungseigenschaften einschließlich der Poolgröße zu konfigurieren.

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

Wenn Sie Eigenschaften Stiefel verwenden, anstatt Code wie diesen zu schreiben, können Sie spring-boot-starter-cloud-connectors aus Ihrem Projekt entfernen und die Boot-Eigenschaften konfigurieren, dass die vcap properties von Booten zur Verfügung gestellt zu verwenden, wenn Anwendungen auf CF. ausgeführt werden Ihre maximum-pool-size-Eigenschaft sollte berücksichtigt werden, wenn Sie die Verbindung auf diese Weise konfigurieren.

0

ich Hikari nachschlagen musste. Laut this article handelt es sich um einen jdbc-Verbindungspool.

Ich gehe davon aus, Sie haben Hikari als App in Cloud Foundry eingesetzt und daraus einen CUPS-Dienst erstellt. Ist das korrekt?

Sie können nicht den Dienst durch die CUPS-Definition ändern. Es erstellt nur eine Instanz dieses Dienstes.

Versuchen Sie, die Poolgröße entweder in bootstrap.yml festzulegen oder indem Sie Umgebungsvariablen in der Hikari-App so setzen, dass die Standardwerte übergeben werden. Möglicherweise müssen Sie die App anpassen, um diese Variablen zur Laufzeit zu akzeptieren.

Wenn das nicht funktioniert, müssen Sie möglicherweise Ihren eigenen Service Broker erstellen oder eine Kachel erstellen. Das würde Ihnen Möglichkeiten geben, den Dienst zu manipulieren.

Hoffe, das hilft!

+0

Ich habe versucht, in bootstrap.yml einrichten und Umgebungsvariablen festlegen. Und ich habe versucht, dhcp und c3p0 auch zu verwenden, scheint alle diese Datenbank Verbindungspool Einstellungen von Cloud Foundry Service/Tassen verbindlich überschrieben werden. –

+0

Wenn Sie sich die 'cf cups --help' anschauen, werden Sie feststellen, dass es keine Möglichkeit gibt, die tatsächlichen Servicedetails irgendwo zu manipulieren. Der Dienst selbst muss konfiguriert werden, um Standardwerte festzulegen. Möglicherweise müssen Sie einen Service Broker dafür schreiben. –