คู่มือเกี่ยวกับโควตาและขีดจำกัดอัตรา
FedEx ได้รับคำขอ API หลายพันรายการในแต่ละวัน เราใช้กลไกการจำกัดปริมาณการส่งคำขอสามแบบเพื่อจัดการคำขอจำนวนมากเหล่านั้น อันได้แก่ โควตา ขีดจำกัดอัตรา และเทรสโฮลด์ โดยนำมาใช้เพื่อจัดสรรทรัพยากรอื่นๆ ของ FedEx อย่างมีประสิทธิภาพและประสิทธิผล
กำหนดโควตาต่อองค์กรและต่อโครงการ API
โควตาต่อองค์กร
โควตาการทำรายการคือจำนวนคำขอ API สูงสุดที่ได้รับอนุญาตจากองค์กรภายในหนึ่งวัน ซึ่งหมายความว่าผู้บริโภค API ควรคำนึงถึงจำนวนคำขอ API ทั้งหมดที่เริ่มต้นสำหรับโครงการทั้งหมดภายในองค์กรเดียว ทั้งนี้ คำขอแต่ละรายการจะนับเป็นหนึ่งคำขอเหมือนกันโดยไม่ได้คำนึงถึงปริมาณข้อมูลที่ส่งคืนในการตอบกลับ FedEx API
ตัวอย่าง: องค์กรมีโควตาคำขอ API ที่ 500,000 รายการต่อวัน หากองค์กรส่งคำขอถึง 500,000 รายการภายในสองสามชั่วโมงแรกของวัน แสดงว่าใช้โควตาครบกำหนดแล้ว สำหรับในช่วงเวลาที่เหลือของวัน ระบบจะส่งรหัสข้อผิดพลาด “429 – ส่งคำขอมากเกินไป – เกินโควตาการทำรายการต่อวัน กรุณาลองอีกครั้งหลัง 12.00 น. GMT” สำหรับแต่ละคำขอจนกว่าจะถึงวันถัดไป
โควตาต่อโครงการ API
โควตานี้ใช้กับสองระดับที่ต่างกัน ได้แก่ ระดับโครงการและระดับความสามารถ
ความสามารถที่เราหมายถึงคืออะไร
API แต่ละรายการจะถูกจัดกลุ่มตามความสามารถที่มี กลุ่มความสามารถแต่ละกลุ่มคือชุดของปลายทางตั้งแต่หนึ่งแห่งขึ้นไป ตัวอย่างเช่น ความสามารถในการติดตามสถานะแบบรวมระบบพื้นฐานมีปลายทาง API 6 แห่ง ในขณะที่ความสามารถในการตรวจสอบที่อยู่มีปลายทาง API เพียง 1 แห่ง
ตามค่าเริ่มต้น ขีดจำกัดโควตาต่อความสามารถต่อโครงการ (PCPP) สำหรับความสามารถในการติดตามคือ 100,000 คำขอต่อวัน นั่นหมายความว่าเมื่อการรับส่งข้อมูลจากโครงการใดๆ ภายในองค์กรไปยังปลายทาง 6 แห่งภายใต้ความสามารถในการติดตามเกินขีดจำกัดนี้ เราจะส่งรหัสข้อผิดพลาด "429 'ส่งคำขอมากเกินไป'" ถึงจนกว่าจะสิ้นสุดวันขีดจำกัดโควตานี้ใช้กับคำขอติดตามที่ตามมาทั้งหมดสำหรับปลายทางใดๆ 6 แห่ง
ตัวอย่างเช่น หากโครงการมีขีดจำกัด 100,000 รายการต่อความสามารถในการติดตาม (มีปลายทาง 6 แห่ง) จำนวนธุรกรรมทั้งหมดสำหรับปลายทาง 6 แห่งจะถูกนับจนถึงขีดจำกัด 100,000 รายการ หากโครงการของคุณเกินขีดจำกัดนั้น สำหรับธุรกรรมการติดตามครั้งต่อไป คุณจะได้รับรหัสข้อผิดพลาด "429 – ส่งคำขอมากเกินไป – เกินโควตาการทำรายการต่อวัน" ในช่วงที่เหลือของวัน 00:00 น. GMT
ขีดจำกัดอัตรา
แต่ละโครงการมีขีดจำกัดอัตราการทำรายการที่ 1,400 รายการต่อ 10 วินาที โดยข้อจำกัดในการจำกัดปริมาณการส่งคำขอจะมีผลหากทำรายการเกินขีดจำกัดนี้ในช่วง 10 วินาที
หากถึงขีดจำกัดนี้ในสองสามวินาทีแรก การทำรายการใดๆ ที่ส่งในวินาทีที่เหลือของหน้าต่าง 10 วินาทีดังกล่าวจะถูกจำกัดปริมาณการส่งคำขอ โดยในช่วงที่จำกัดปริมาณการส่งคำขอนี้ ระบบจะส่งรหัสข้อผิดพลาด “429 – คำขอมากเกินไป”
หาก FedEx ได้รับคำขอ 1,400 รายการใน 2 วินาทีแรก การทำรายการใดๆ ต่อจากนั้นจะถูกจำกัดปริมาณการส่งคำขอในช่วง 8 วินาทีถัดไป และระบบจะส่งข้อความแสดงข้อผิดพลาด “429 – เราได้รับคำขอมากเกินไปในระยะเวลาสั้นๆ กรุณารอสักครู่แล้วลองใหม่อีกครั้ง”
หลังจากผ่านไป 10 วินาที ข้อจำกัดในการจำกัดปริมาณการส่งคำขอจะถูกยกเลิกและตัวนับอื่นจะเริ่มติดตามจำนวนคำขอในช่วง 10 วินาทีถัดไป
เทรสโฮลด์
เทรสโฮลด์จะใช้ที่ระดับที่อยู่ IP เพื่อให้กระบวนการให้สิทธิ์อนุญาต FedEx API มีความยืดหยุ่น ซึ่งกลไกนี้ใช้ได้กับบริการสร้างโทเค็น Auth เท่านั้น โดยเทรสโฮลด์มีสองประเภทดังนี้
- เทรสโฮลด์เบิร์ส: 3 ฮิตต่อวินาที ต่อเนื่อง ในช่วง 5 วินาที
- เทรสโฮลด์เฉลี่ย: 1 ฮิตต่อวินาที ต่อเนื่อง ในช่วง 2 นาที
- เมื่อที่อยู่ IP สาธารณะละเมิดขีดจำกัดเทรสโฮลด์ใดๆ เหล่านี้ จะถูกลงโทษเป็นเวลา 10 นาที และคำขอต่อไปทั้งหมดในช่วงเวลา 10 นาทีนี้จะได้รับรหัสสถานะ "403 ไม่อนุญาตให้เข้าถึง"
- หากผู้บริโภค API ยังคงละเมิดเทรสโฮลด์ใดๆ ในช่วงเวลาที่มีโทษปรับนี้ ช่วงเวลาที่มีโทษปรับจะขยายออกไปอีก ผู้ใช้ API สามารถยุติการลงโทษได้โดยไม่ละเมิดขีดจำกัดเทรสโฮลด์สำหรับช่วง 10 นาทีถัดไป
- กลไกเทรสโฮลด์ขึ้นอยู่กับที่อยู่ IP สาธารณะของผู้ใช้ หากผู้ใช้ตั้งค่าอินสแตนซ์เครื่องคอมพิวเตอร์เสมือน 10 รายการหลัง IP สาธารณะหนึ่งรายการ คำขอทั้งหมดจากที่อยู่ IP ดังกล่าวจะนับรวมในขีดจำกัดเทรสโฮลด์
การจัดการการรับส่งข้อมูล
กลไกทั้งสามนี้ระบุการจัดการกับการรับส่งข้อมูลที่แตกต่างกันดังนี้
โควตาจะใช้ที่ระดับองค์กร กล่าวคือ การรับส่งข้อมูลแบบรวมที่สร้างโดย API ทั้งหมดภายในองค์กรจะต้องเป็นไปตามโควตาการทำธุรกรรมนี้
โควตาจะใช้ที่ระดับโครงการ กล่าวคือ การรับส่งข้อมูลแบบรวมที่สร้างโดยหนึ่งความสามารถ API ภายในโครงการจะเป็นไปตามโควตาการทำรายการนี้
ขีดจำกัดอัตราจะใช้ที่ระดับโครงการ กล่าวคือ การรับส่งข้อมูลแบบรวมที่สร้างโดย API ทั้งหมดภายในโครงการจะต้องเป็นไปตามขีดจำกัดอัตรานี้
เทรสโฮลด์จะใช้ที่ระดับที่อยู่ IP
หมายเหตุ: FedEx อาจลดขีดจำกัดของกลไกการจำกัดปริมาณการส่งคำขอที่ระบุข้างต้นเพื่อป้องกันการใช้ที่ไม่ถูกต้อง การใช้มากเกินไป และการใช้ในทางที่ผิด โดย FedEx ขอสงวนสิทธิ์ในการเปลี่ยนแปลงการจัดสรรโดยไม่ต้องแจ้งให้ทราบล่วงหน้า เพื่อรักษาการเข้าถึงที่เท่าเทียมกันระหว่างผู้บริโภค API และเพื่อจัดสรรทรัพยากรของ FedEx อย่างมีประสิทธิภาพและมีประสิทธิผล
คำถามที่พบบ่อย
การทำรายการ API ทั้งหมดขององค์กรจากโครงการต่างๆ ถูกนับในโควตาหรือไม่
โควตาจะใช้ในระดับองค์กร โดยภายใต้องค์กรเดียว คุณสามารถมีได้หนึ่งโครงการขึ้นไป และภายใต้แต่ละโครงการ คุณสามารถมี API ได้ตั้งแต่หนึ่งรายการขึ้นไป ด้วยเหตุนี้ การรับส่งข้อมูลแบบรวมที่สร้างโดย API ทั้งหมดจากโครงการต่างๆ ซึ่งอยู่ภายใต้องค์กรจะถูกนับในโควตารายวัน
หากมีการส่งคืนข้อผิดพลาด 429 เดียวกันสำหรับทั้งการละเมิดโควตาและการละเมิดขีดจำกัดอัตรา ฉันจะรู้ได้อย่างไรว่าฉันละเมิดอะไร
คุณสามารถอ่านข้อความแสดงข้อผิดพลาดได้ ซึ่งจะระบุประเภทการละเมิดที่เกิดขึ้น
| การละเมิด | ข้อความแสดงข้อผิดพลาด |
|---|---|
| โควตาต่อองค์กร | ส่งคำขอมากเกินไป เกินโควตาการทำรายการต่อวัน กรุณาลองอีกครั้งหลัง 00:00 น. GMT |
| โควตาต่อโครงการ API | ส่งคำขอมากเกินไป: เกินโควตาการทำรายการต่อวัน กรุณาลองอีกครั้งหลัง 00:00 น. GMT |
| ขีดจำกัดอัตรา | ส่งคำขอมากเกินไป: เกินเทรสโฮลด์ขีดจำกัดอัตรา กรุณาลองอีกครั้งหลัง 10 วินาที |
วิธีแก้ไขเมื่อละเมิดขีดจำกัดของเทรสโฮลด์
โทเค็น OAuth มีอายุ 1 ชั่วโมง เราแนะนำให้ผู้บริโภค API ใช้โทเค็นนี้เต็มชั่วโมง จากนั้นให้ขอโทเค็นใหม่เฉพาะเมื่อโทเค็นก่อนหน้าหมดอายุ
ตัวอย่างเมื่อเกินขีดจำกัดของเทรสโฮลด์
ทั้ง 5 วินาทีและ 2 นาทีเป็นหน้าต่างการสังเกตสำหรับเทรสโฮลด์เบิร์สและเทรสโฮลด์เฉลี่ยตามลำดับ โดยในระหว่างเปิดหน้าต่างใดหน้าต่างหนึ่งเหล่านี้ หากละเมิดขีดจำกัดของเทรสโฮลด์ใดจากที่อยู่ IP จะมีการเรียกเก็บค่าปรับ
ตัวอย่าง: หากที่อยู่ IP เป็นแบบ 3 ฮิตต่อวินาทีที่ 2 วินาที ตามด้วยอัตราฮิตต่ำกว่า 3 ฮิตต่อวินาที เทรสโฮลด์เบิร์สจะไม่ถูกละเมิด อย่างไรก็ตาม หากที่อยู่ IP เป็นแบบ 3 ฮิตต่อวินาที ต่อเนื่อง 5 วินาที ตามด้วย 15 ฮิตใน 5 วินาที เทรสโฮลด์เบิร์ส 14 ฮิตใน 5 วินาทีจะถูกละเมิด
