คืออะไร รูปแบบการลองใหม่
การลองใหม่เมื่อล้มเหลว
รูปแบบการลองใหม่ คือรูปแบบการออกแบบสำหรับจัดการความล้มเหลวชั่วคราวโดยการลองใหม่อัตโนมัติสำหรับการดำเนินการที่ล้มเหลว
เมื่อไหร่ควรใช้
- ข้อผิดพลาดเครือข่ายชั่วคราว
- หมดเวลาเมื่อเรียกบริการภายนอก
- ข้อผิดพลาดการเชื่อมต่อฐานข้อมูล
- API โอเวอร์โหลด (429 Too Many Requests)
- บริการไม่พร้อมใช้งานชั่วคราว
กลยุทธ์การลองใหม่
- ลองใหม่ทันที — ไม่มีดีเลย์
- ดีเลย์คงที่ — ช่วงเท่ากัน
- ดีเลย์เชิงเส้น — เพิ่มขึ้นตามค่าคงที่
- Exponential backoff — เพิ่มเวลาเป็นสองเท่า
- Jitter — เพิ่มความสุ่ม
พารามิเตอร์สำคัญ
- จำนวนครั้งสูงสุดในการลอง
- ดีเลย์เริ่มต้น
- ดีเลย์สูงสุด
- ตัวคูณ backoff
- รายการข้อผิดพลาดที่ลองใหม่ได้
แนวทางปฏิบัติที่ดี
- บันทึกทุกครั้งที่ลองใหม่
- ใช้ Circuit Breaker ร่วมกัน
- จำกัดจำนวนครั้งในการลอง
- เพิ่ม jitter เพื่อกระจายโหลด
- พิจารณา idempotency ของการดำเนินการ