Mẫu Thử lại là gì
Thử lại khi thất bại
Mẫu Thử lại là mẫu thiết kế để xử lý các lỗi tạm thời bằng cách tự động thử lại các thao tác thất bại.
Khi nào sử dụng
- Lỗi mạng tạm thời
- Hết thời gian khi gọi dịch vụ bên ngoài
- Lỗi kết nối cơ sở dữ liệu
- Quá tải API (429 Too Many Requests)
- Dịch vụ tạm thời không khả dụng
Chiến lược thử lại
- Thử lại ngay lập tức — không trì hoãn
- Trì hoãn cố định — khoảng thời gian bằng nhau
- Trì hoãn tuyến tính — tăng theo hằng số
- Backoff theo cấp số nhân — gấp đôi thời gian
- Jitter — thêm tính ngẫu nhiên
Tham số chính
- Số lần thử tối đa
- Trì hoãn ban đầu
- Trì hoãn tối đa
- Hệ số nhân backoff
- Danh sách lỗi có thể thử lại
Thực hành tốt nhất
- Ghi log tất cả các lần thử lại
- Sử dụng Circuit Breaker cùng nhau
- Giới hạn số lần thử
- Thêm jitter để phân phối tải
- Xem xét tính idempotency của thao tác