Nhảy đến nội dung chính

Trang 3: Cơ chế Kháng lỗi (Resiliency)

Hệ thống sử dụng cơ chế Retry-with-Recovery tại lớp ExternalApiClient:

3.1 Cơ chế Retry

Sử dụng Annotation @Retryable cho các phương thức gọi API:

  • maxAttempts = 3: Thử lại tối đa 3 lần nếu xảy ra Exception.
  • backoff = @Backoff(delay = 2000): Chờ 2 giây giữa mỗi lần thử lại.

3.2 Cơ chế Recovery (Hồi phục)

Khi cả 3 lần thử lại đều thất bại, phương thức @Recover sẽ được kích hoạt để trả về một phản hồi "an toàn" thay vì làm sập ứng dụng:

@Recover
public ResponseEntity<?> recoverSigning(Exception e) {
    log.warn("Recovering after signing call failed", e);
    return ResponseFactory.error("Signing service error: " + e.getMessage(), ...);
}