Ocelot — แก้ปัญหา 499 CLIENT CLOSED REQUEST

wk
Nov 29, 2020

--

ตัวอย่าง

  1. สร้าง 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 นาที

ทดสอบอีกครั้ง

--

--

No responses yet