13 points par toughrogrammer 2025-08-28 | 2 commentaires | Partager sur WhatsApp
  • Identification du problème
    • Des ralentissements intermittents de la réponse se produisaient sur le serveur d’authentification d’Airbridge.
    • Comme l’authentification/l’autorisation est effectuée avant les requêtes API, la latence du serveur d’authentification affecte directement la stabilité de l’ensemble du service.
    • Les résultats de la supervision montraient une augmentation progressive des alertes de latence de réponse supérieure à 1 seconde → lancement de l’analyse des causes et des travaux d’optimisation.
  • Analyse des causes
    • (1) DB Query excessives : lors du processus de vérification des autorisations, un trop grand nombre de DB Query étaient exécutées à chaque requête, ce qui épuisait rapidement le DB Connection Pool → latence de réponse.
    • (2) Saturation du HikariCP Connection Pool : lors de l’exécution excessive de DB Query, le pool HikariCP arrivait à saturation → constat d’une attente des threads de plus de 30 secondes.
    • (3) Faible efficacité du cache : TTL défini trop court à 30 secondes + logique de cache inefficace → forte probabilité de réexécution de DB Query.
  • Stratégie d’amélioration
    • (1) Amélioration de la structure de vérification des autorisations et de cache
      • Introduction d’un accès groupé à la base de données avec findAllBy~ → DB Query réduites de 134 à 4 (-97 %).
      • Mise en place d’un cache mutableMap basé sur la mémoire de l’application.
      • Application du principe de responsabilité unique (SRP) → séparation des méthodes et définition d’une stratégie de cache par sous-logique.
    • (2) Introduction d’une architecture de cache à 2 couches
      • Mise en place d’une structure mixte Local Cache (Caffeine, L1) + Remote Cache (Redis, L2).
      • Amélioration de l’efficacité opérationnelle grâce à une segmentation des stratégies de cache en L1-Only, L2-Only et Hybrid.
      • Analyse de l’utilisation mémoire du cache → estimation de 500 000 clés Redis, besoin mémoire d’environ 190 MB, avec une marge de sécurité.
    • (3) Invalidation du cache basée sur Redis Pub/Sub
      • Sortie d’un fonctionnement dépendant du TTL grâce à une synchronisation en temps réel du cache lors de la modification des informations d’autorisation.
      • Lors d’une modification sur un serveur, invalidation synchronisée du Local Cache de tous les serveurs via un canal Redis.
    • (4) Ajustement du pool de connexions HikariCP
      • maximum-pool-size étendu de 10 à 30.
      • Optimisation d’options détaillées comme Connection Timeout, Idle Timeout et Max Lifetime → réduction de la contention DB I/O.
  • Tests de performance et résultats : maintien de performances stables même sous un trafic massif.
  • Effets de l’amélioration en environnement de production
    • Après le déploiement, disparition des alertes de latence de réponse et stabilisation du temps de réponse global.
    • Forte amélioration de la fiabilité du service et de la stabilité opérationnelle.
  • Optimisation supplémentaire : JVM Warm-Up
    • Découverte d’un problème de latence des réponses initiales causé par le retard de compilation JIT juste après le déploiement.
    • Introduction d’un Warm-Up Runner :
      • Exécution préalable de requêtes factices au démarrage de l’application.
      • Lors du remplacement d’un Pod K8s, traitement du trafic après fin du JIT → temps de réponse initial réduit de 1.07s à 94ms.
  • Conclusion et effets
    • Résolution du problème de latence de réponse + mise en place d’une architecture capable d’absorber une hausse soudaine du trafic.
    • Amélioration de la stabilité et de la fiabilité globales des services Airbridge.
    • Hausse de l’utilisation du serveur d’authentification, ce qui améliore la productivité du développement des services métiers.

2 commentaires

 
anona 2025-08-29

Avec l’arrêt récent du service de deep links de Google, on dirait que le nombre d’entreprises utilisant ce service a augmenté.
J’espère un service stable !

 
daumkakao 2025-08-28

Oh… notre entreprise a récemment signé ici elle aussi, et vous travaillez d’arrache-pied pour améliorer les performances, on dirait !!!