Timeout API Handle

Em xử lí lỗi timeout khi call API như thế nào ?

Dạ, khi gặp lỗi timeout khi call API, em xử lý như sau:


1. Cấu hình timeout hợp lý:

  • Connect timeout: giới hạn thời gian thiết lập kết nối (ví dụ 3s).

  • Read timeout: giới hạn thời gian chờ response (ví dụ 5s).

  • Dùng RestTemplateBuilder, WebClient hoặc HTTP client như OkHttp đều có option này.


2. Retry có kiểm soát:

  • Dùng Resilience4j Retry hoặc Spring Retry để retry tự động khi timeout.

  • Giới hạn số lần retry (ví dụ 3 lần), tránh flood service target.


3. Circuit Breaker:

  • Dùng Resilience4j CircuitBreaker:

    • Nếu quá nhiều lỗi liên tục, tạm ngưng call trong thời gian ngắn → tránh làm service bị “chết chùm”.


4. Fallback method:

  • Khi timeout hoặc API down, gọi fallback:

    • Trả response mặc định.

    • Hoặc lưu request để retry sau (async queue).


5. Alert & Monitoring:

  • Log rõ lỗi timeout.

  • Theo dõi metric để cảnh báo sớm khi số lượng timeout tăng cao bất thường.


Cách này giúp hệ thống ổn định, không bị “domino effect” khi API phụ bị chậm hoặc mất kết nối.

Last updated