Maison > base de données > tutoriel mysql > Délai d'expiration de la connexion à la base de données Spring Boot : comment configurer efficacement les pools de connexions ?

Délai d'expiration de la connexion à la base de données Spring Boot : comment configurer efficacement les pools de connexions ?

Susan Sarandon
Libérer: 2024-12-10 01:42:10
original
215 Les gens l'ont consulté

Spring Boot Database Connection Timeout: How to Effectively Configure Connection Pools?

Problème d'expiration du délai de connexion Spring Boot avec la base de données

Résumé du problème

Applications Spring Boot utilisant Spring Data JPA et Hibernate avec MySQL peuvent rencontrer des erreurs de délai de connexion. Plus précisément, le message d'erreur « CommunicationsException : le dernier paquet reçu avec succès du serveur remonte à plus de 4 millisecondes » indique que la connexion entre l'application et la base de données a expiré.

Solution possible Utilisation d'autoReconnect

En utilisant spring.datasource.testonborrow=true et spring.datasource.validationQuery=SELECT 1 est une solution viable, elle n'est pas recommandée. Une meilleure approche consiste à configurer le pool de connexions de manière appropriée.

Solution recommandée : configuration du pool de connexions

  1. Définir le nombre maximum de Connexions :

    • spring.datasource.max-active=10
    • Ceci spécifie le nombre maximum de connexions simultanées autorisées dans le pool.
  2. Définir la connexion initiale et inactive Limites :

    • spring.datasource.initial-size=5
    • Cela définit le nombre de connexions initiales dans le pool.
    • spring.datasource. max-idle=5
    • Ceci définit le nombre maximum de connexions inactives dans le pool.
    • spring.datasource.min-idle=1
    • Ceci définit le nombre minimum de connexions inactives dans le pool.
  3. Activer la connexion Validation :

    • spring.datasource.test-while-idle=true
    • Cela valide les connexions lorsqu'elles sont inactives.
    • spring.datasource.test -on-borrow=true
    • Ceci valide les connexions lorsqu'elles sont récupérées depuis le pool.
    • spring.datasource.validation-query=SELECT 1
    • Cela définit la requête de validation à exécuter.
  4. Définir la période de validation et l'inactivité Délai d'expiration :

    • spring.datasource.time-between-eviction-runs-millis=5000
    • Ceci spécifie la fréquence d'exécution de la requête de validation.
    • spring.datasource.min-evictable-idle-time-millis=60000
    • Cela définit l'âge maximum d'une connexion inactive avant qu'elle ne soit considérée comme pouvant être expulsée.

En configurant le pool de connexions de cette manière, les connexions sont validées périodiquement, les connexions inactives sont purgées régulièrement et de nouvelles les connexions sont acquises lorsque cela est nécessaire. Spring Boot gère automatiquement le processus de reconnexion, garantissant que les connexions sont toujours disponibles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal