ตัวอย่าง
- สร้าง Downstream API ที่สามารถกำหนด Delay เพื่อให้ API response ตามเวลาที่ต้องการ
2. เพิ่ม ocelot.v1.json
โดยกำหนด Route ชี้ไปที่ Downstream ดังนี้
3. ทดสอบโดยกำหนด Delay เป็น 1 และ 2 นาที
จากการทดสอบ จะพบว่าเมื่อเรียก API โดยเพิ่ม Delay เป็น 2 นาที Ocelot จะ Return 499 CLIENT CLOSED REQUEST แทนที่จะเป็น 200 OK
สาเหตุ
เกิดจากใน Ocelot มีการกำหนด Default Timeout ของ HttpClient ไว้ที่ 90 วินาที ถ้า Downstream ทำงานช้ากว่านี้ Ocelot จะยกเลิก Request และ Return 499 ไปยัง Client
วิธีแก้
ให้ Override timeout โดยปรับที่ QosOptions.TimeoutValue
เช่น ปรับเป็น 3 นาที
ทดสอบอีกครั้ง