13 puntos por toughrogrammer 2025-08-28 | 2 comentarios | Compartir por WhatsApp
  • Identificación del problema
    • Se producían retrasos intermitentes en la respuesta del servidor de autenticación de Airbridge.
    • Como la autenticación/autorización se realiza antes de las solicitudes API, la latencia del servidor de autenticación afecta directamente la estabilidad de todo el servicio.
    • Según el monitoreo, las alertas por demoras de respuesta de más de 1 segundo se volvían cada vez más frecuentes → se inició el análisis de causas y el trabajo de optimización.
  • Análisis de causas
    • (1) Exceso de consultas a la BD: durante la verificación de permisos se ejecutaban demasiadas consultas a la BD por cada solicitud, lo que agotaba rápidamente el DB Connection Pool → se generaban retrasos en la respuesta.
    • (2) Saturación del Connection Pool de HikariCP: al ejecutarse demasiadas consultas a la BD, el pool de HikariCP se saturaba → se confirmó una espera de hilos de más de 30 segundos.
    • (3) Baja eficiencia de caché: TTL configurado demasiado corto, en 30 segundos, + lógica de caché ineficiente → alta probabilidad de que se repitieran las consultas a la BD.
  • Estrategia de mejora
    • (1) Mejora de la estructura de verificación de permisos y caché
      • Se introdujo el método de consulta masiva a la BD (findAllBy~) → las consultas a la BD se redujeron de 134 a 4 (-97%).
      • Se aplicó caché basada en memoria de la aplicación con mutableMap.
      • Se aplicó el principio de responsabilidad única (SRP) → separación de métodos y definición de estrategias de caché por lógica subordinada.
    • (2) Implementación de una estructura de caché de 2 capas
      • Se aplicó una estructura mixta de Local Cache (Caffeine, L1) + Remote Cache (Redis, L2).
      • La estrategia de caché se subdividió en L1-Only, L2-Only y Hybrid para mejorar la eficiencia operativa.
      • Se analizó el uso de memoria de la caché → se estimaron 500 mil claves de Redis, con un requerimiento aproximado de 190MB de memoria, asegurando un margen de seguridad.
    • (3) Invalidación de caché basada en Redis Pub/Sub
      • Se dejó de depender del TTL y se sincronizó la caché en tiempo real cuando cambiaba la información de permisos.
      • Si había un cambio en un servidor, el Local Cache de todos los servidores se invalidaba de forma sincronizada a través de un canal de Redis.
    • (4) Ajuste fino del pool de conexiones de HikariCP
      • maximum-pool-size se amplió de 10 a 30.
      • Se optimizaron opciones detalladas como Connection Timeout, Idle Timeout y Max Lifetime → se alivió la contención de DB I/O.
  • Pruebas de rendimiento y resultados: se mantuvo un rendimiento estable incluso con tráfico a gran escala.
  • Efectos de la mejora en el entorno de operación
    • Después del despliegue, desaparecieron las alertas por retrasos de respuesta y se estabilizó el tiempo de respuesta general.
    • La confiabilidad del servicio y la estabilidad operativa mejoraron considerablemente.
  • Optimización adicional: JVM Warm-Up
    • Se detectó un problema de latencia en las respuestas iniciales causado por el retraso de la compilación JIT justo después del despliegue.
    • Se introdujo un Warm-Up Runner:
      • Ejecuta solicitudes dummy por adelantado al iniciar la aplicación.
      • Durante el reemplazo de Pods en K8s, el tráfico se procesa después de completar el JIT → el tiempo de respuesta inicial se redujo de 1.07s a 94ms.
  • Conclusión y efectos
    • Se resolvió el problema de latencia en la respuesta + se aseguró una estructura capaz de responder a aumentos repentinos del tráfico.
    • Mejoró la estabilidad y confiabilidad general del servicio de Airbridge.
    • Se incrementó el aprovechamiento del servidor de autenticación, mejorando la productividad en el desarrollo de servicios de dominio.

2 comentarios

 
anona 2025-08-29

Parece que últimamente han aumentado las empresas que usan este servicio debido al cierre reciente del servicio de deep links de Google.
¡Espero que ofrezcan un servicio estable!

 
daumkakao 2025-08-28

Eh... nuestra empresa también firmó recientemente aquí, así que veo que están trabajando duro para mejorar el rendimiento!!!