Difficultés de scaling-out sur API Java (SpringBoot / Azure Container Apps)
Bonjour,
Je travaille actuellement sur le scaling-out de mes APIs et je rencontre des difficultés de configuration, qui sont longues à diagnostiquer et à optimiser.
Je constate régulièrement des erreurs 503 (Service Unavailable) avant même que l’auto-scaling ne se déclenche, alors que l’utilisation CPU de l’API reste inférieure à 40%.
J’aimerais savoir quelles sont les configurations recommandées en fonction des ressources allouées par mes services et de mon environnement technique.
Contexte technique :
- API en Java (SpringBoot) déployée sur Azure Container Apps
- Utilisation de Tomcat et HikariCP (avec virtual threads et API bloquante)
- Base de données PostgreSQL sur Azure Flexible Server
Points sur lesquels j’aimerais avoir des recommandations :
- Configuration optimale de Tomcat et HikariCP (pool de threads, timeouts, connexions, etc.)
- Nombre de max-connections PostgreSQL adapté aux ressources allouées (par exemple : B1ms avec 1 cœur et 2 Go de RAM).
- Peut-on appliquer une règle de proportionnalité simple (ex. doubler les ressources = doubler le nombre de connexions) ?
Merci d’avance pour vos éclairages et bonnes pratiques.
Cordialement,