Heim >Datenbank >MySQL-Tutorial >Wie behebe ich Zeitüberschreitungen im Spring Boot-Verbindungspool mit Hibernate und MySQL?

Wie behebe ich Zeitüberschreitungen im Spring Boot-Verbindungspool mit Hibernate und MySQL?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-18 01:32:10878Durchsuche

How to Fix Spring Boot Connection Pool Timeouts with Hibernate and MySQL?

Zeitüberschreitung des Verbindungspools in Spring Boot mit Hibernate und MySQL

Bei der Verwendung von Spring Boot, JPA-Hibernate und MySQL kann es bei Benutzern zu einer Zeitüberschreitung kommen Fehler, die auf „CommunicationsException“-Probleme hinweisen. Um dieses Problem zu beheben, besteht der empfohlene Ansatz darin, die Verbindungsvalidierung zu aktivieren und die maximale Anzahl der im Pool zulässigen Verbindungen anzugeben.

Eigenschaften des Verbindungspools konfigurieren:

Sie können dies effektiv tun Konfigurieren Sie Ihren Verbindungspool, indem Sie die folgenden Eigenschaften in Ihren application.properties festlegen:

  • spring.datasource.max-active: Maximale Anzahl aktiver Verbindungen (Standard: 8)
  • spring.datasource.initial-size: Anzahl der anfänglichen Verbindungen (Standard: 0)
  • spring.datasource.max-idle: Maximale Anzahl inaktiver Verbindungen (Standard: 8)
  • spring.datasource.min-idle: Mindestanzahl inaktiver Verbindungen (Standard: 0)
  • spring.datasource.time-between-eviction-runs-millis: Zeit zwischen Verbindungsvalidierungsprüfungen (Standard: 5000 ms)
  • spring.datasource.min-evictable-idle-time -millis: Minimale Leerlaufzeit, bevor eine Verbindung entfernt wird (Standard: 60000). ms)

Verbindungsvalidierung aktivieren:

Um Verbindungen regelmäßig zu validieren und unterbrochene Verbindungen aus dem Pool zu entfernen, legen Sie die folgenden Eigenschaften fest:

  • spring.datasource.test-while-idle: Verbindungen validieren, während sie inaktiv sind (Standard: false)
  • spring.datasource.test-on-borrow: Verbindungen validieren, bevor sie aus dem Pool ausgeliehen werden (Standard: false)
  • spring.datasource.validation-query: SQL-Abfrage, für die ausgeführt werden soll Verbindungsvalidierung (Standard: SELECT 1)

Alternativer Ansatz (nicht Empfohlen):

Obwohl nicht empfohlen, können Sie auch autoReconnect=true in der JDBC-URL angeben, um die Verbindung automatisch wiederherzustellen, wenn eine Zeitüberschreitung auftritt:

spring.datasource.url = jdbc:mysql://localhost:3306/test?autoReconnect=true

Dieser Ansatz kann jedoch zu Problemen führen Probleme bei aktiven Transaktionen, wenn eine erneute Verbindung auftritt.

Durch die Implementierung dieser Einstellungen können Sie sicherstellen, dass Verbindungen im Leerlauf aktiv getestet und entfernt werden, wodurch Timeout-Fehler vermieden und aufrechterhalten werden die Stabilität der Verbindung Ihrer Anwendung zur Datenbank.

Das obige ist der detaillierte Inhalt vonWie behebe ich Zeitüberschreitungen im Spring Boot-Verbindungspool mit Hibernate und MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn