info-icon


Hướng dẫn về hạn mức & giới hạn tốc độ

Mỗi ngày, FedEx nhận được hàng nghìn yêu cầu API. Chúng tôi sử dụng 3 cơ chế điều chỉnh để quản lý khối lượng lớn đó. Hạn mức, giới hạn tốc độ và ngưỡng được áp dụng để phân bổ tài nguyên FedEx sao cho hiệu quả và đạt hiệu suất cao.

Hạn mức được xác định trên mỗi tổ chức và mỗi dự án API.

 

Hạn mức trên mỗi tổ chức

Hạn mức giao dịch là số lượng yêu cầu API tối đa mà một tổ chức được phép thực hiện trong một ngày. Nói cách khác, người tiêu dùng API cần xem xét tổng số yêu cầu API được khởi tạo cho tất cả các dự án trong một tổ chức duy nhất. Mỗi yêu cầu được tính như nhau, bất kể khối lượng dữ liệu được trả về trong phản hồi API FedEx.

Ví dụ: Một tổ chức có hạn mức 500.000 yêu cầu API mỗi ngày. Nếu một tổ chức gửi 500.000 yêu cầu trong vài giờ đầu tiên trong ngày thì tổ chức đó đã đạt đến hạn mức. Thời gian còn lại trong ngày, hệ thống sẽ trả về mã lỗi “429 – Quá nhiều yêu cầu – Đã vượt quá hạn mức giao dịch hàng ngày. Hãy thử lại sau 12 giờ đêm, theo giờ GMT” đối với mỗi yêu cầu cho đến ngày hôm sau

 

Hạn mức trên mỗi dự án API

Hạn mức này được áp dụng ở 2 cấp độ khác nhau: dự án và khả năng.

Khả năng nghĩa là gì?

Mỗi API được nhóm theo khả năng có thể cung cấp. Mỗi nhóm khả năng là một gói gồm một hoặc nhiều điểm cuối. Ví dụ: Khả năng hiển thị được tích hợp cơ bản có 6 điểm cuối API trong khi khả năng Xác thực địa chỉ chỉ có 1 điểm cuối API.

Giới hạn hạn mức Theo khả năng và Theo dự án (PCPP) mặc định cho khả năng Theo dõi là 100 nghìn yêu cầu mỗi ngày. Điều đó có nghĩa là khi lưu lượng truy cập từ bất kỳ dự án nào trong tổ chức đến điểm cuối bất kỳ trong số 6 điểm cuối thuộc khả năng Theo dõi vượt quá giới hạn này, thì chúng tôi sẽ gửi cho bạn lỗi "429 'Quá nhiều yêu cầu'" cho đến cuối ngày. Điều này áp dụng cho tất cả các yêu cầu theo dõi tiếp theo cho điểm cuối bất kỳ trong số 6 điểm cuối

Ví dụ: Nếu dự án có giới hạn 100 nghìn cho mỗi khả năng theo dõi (với 6 điểm cuối) thì tổng số giao dịch cho cả 6 điểm cuối sẽ được tính vào giới hạn 100 nghìn. Nếu dự án của bạn vượt quá giới hạn đó thì đối với các giao dịch theo dõi tiếp theo, bạn sẽ nhận được mã lỗi “429 – Quá nhiều yêu cầu – Đã vượt quá hạn mức giao dịch hàng ngày” trong suốt thời gian còn lại trong ngày cho đến hết 12 giờ đêm, theo giờ GMT.

 

Giới hạn tốc độ

Mỗi dự án có giới hạn tốc độ giao dịch là 1.400 giao dịch mỗi 10 giây. Các hạn chế điều chỉnh được áp dụng nếu các giao dịch vượt quá giới hạn này trong mỗi khung thời gian 10 giây.

Nếu đạt đến giới hạn này trong vài giây đầu tiên thì mọi giao dịch được gửi trong những giây còn lại của khung thời gian 10 giây đó sẽ được điều chỉnh. Trong khoảng thời gian điều chỉnh này, hệ thống sẽ trả về mã lỗi có nội dung “429 – Quá nhiều yêu cầu”.

Nếu FedEx nhận được 1.400 yêu cầu trong 2 giây đầu tiên thì mọi giao dịch sau đó sẽ được điều chỉnh trong 8 giây tiếp theo và hệ thống sẽ trả về thông báo lỗi có nội dung “429  – Chúng tôi đã nhận được quá nhiều yêu cầu trong một thời gian ngắn. Vui lòng chờ một lúc rồi thử lại"

Sau khi 10 giây trôi qua, các hạn chế điều chỉnh sẽ được dỡ bỏ và một bộ đếm khác sẽ bắt đầu theo dõi số lượng yêu cầu trong 10 giây tiếp theo.

 

Ngưỡng

Ngưỡng được áp dụng ở cấp địa chỉ IP để đảm bảo khả năng phục hồi cho quy trình ủy quyền của API FedEx. Cơ chế này chỉ áp dụng cho dịch vụ tạo mã thông báo Xác thực. Có hai loại ngưỡng:

  1. Ngưỡng bùng nổ: 3 lần truy cập mỗi giây, liên tục trong khoảng thời gian 5 giây
  2. Ngưỡng trung bình: 1 lần truy cập mỗi giây, liên tục trong khoảng thời gian 2 phút
  • Khi một địa chỉ IP công cộng vi phạm bất kỳ giới hạn ngưỡng nào trong số này thì địa chỉ đó sẽ chịu phạt trong 10 phút và tất cả các yêu cầu khác trong khung thời gian 10 phút này sẽ nhận được mã trạng thái “403 Bị cấm”
  • Nếu người tiêu dùng API tiếp tục vi phạm bất kỳ giới hạn ngưỡng nào trong thời gian phạt này thì thời gian phạt sẽ kéo dài thêm. Nếu người dùng API không vi phạm giới hạn về ngưỡng trong 10 phút tiếp theo thì thời gian phạt sẽ chấm dứt
  • Cơ chế về ngưỡng dựa trên địa chỉ IP công cộng của người dùng. Nếu người dùng thiết lập 10 phiên bản mô phỏng phía sau một IP công cộng thì tất cả yêu cầu từ địa chỉ IP đó sẽ được tính vào giới hạn về ngưỡng

 

Quản lý lưu lượng truy cập

Trong ba cơ chế này, mỗi cơ chế giải quyết một khía cạnh riêng trong việc quản lý lưu lượng truy cập:

  • Hạn mức được áp dụng ở cấp tổ chức: Tổng lưu lượng truy cập mà tất cả các API tạo ra trong một tổ chức sẽ phải tuân theo hạn mức giao dịch này.

  • Hạn mức được áp dụng ở cấp dự án: Tổng lưu lượng truy cập được tạo cho một khả năng API trong một dự án sẽ phải tuân theo hạn mức giao dịch này.

  • Giới hạn tốc độ được áp dụng ở cấp dự án: Tổng lưu lượng truy cập mà tất cả các API tạo ra trong một dự án sẽ phải tuân theo giới hạn tốc độ này.

  • Các ngưỡng được áp dụng ở cấp địa chỉ IP.

Lưu ý: FedEx có thể giảm giới hạn của bất kỳ cơ chế điều chỉnh nào được đề cập ở trên để ngăn chặn việc dùng sai, dùng quá nhiều và lạm dụng. FedEx có quyền thay đổi việc phân bổ mà không cần thông báo trước để duy trì quyền truy cập công bằng giữa những người tiêu dùng API và để phân bổ tài nguyên của FedEx sao cho hiệu quả và đạt hiệu suất cao.


Câu hỏi thường gặp

Có phải tất cả giao dịch API từ các dự án khác nhau của một tổ chức đều được tính vào hạn mức không?
Hạn mức được áp dụng ở cấp tổ chức. Trong một tổ chức, bạn có thể có một hoặc nhiều dự án và trong mỗi dự án, bạn có thể có một hoặc nhiều API. Do đó, tổng lưu lượng truy cập được tạo bởi tất cả API từ các dự án khác nhau, thuộc cùng một tổ chức, đều được tính vào hạn mức hàng ngày.

Nếu cùng mã lỗi 429 được trả về đối với vi phạm hạn mức và vi phạm giới hạn tốc độ, làm cách nào để xác định loại vi phạm mà tôi đã mắc phải?
Bạn có thể xác định loại vi phạm bằng cách đọc thông báo lỗi.

 

VI PHẠM THÔNG BÁO LỖI
Hạn mức trên mỗi tổ chức Quá nhiều yêu cầu Đã vượt quá hạn mức giao dịch hàng ngày. Hãy thử lại sau 12 giờ đêm, theo giờ GMT
Hạn mức trên mỗi dự án API Quá nhiều yêu cầu: Đã vượt quá hạn mức hàng ngày trên mỗi dự án. Hãy thử lại sau 12 giờ đêm, theo giờ GMT
Giới hạn tốc độ Quá nhiều yêu cầu: Đã vượt quá ngưỡng giới hạn tốc độ. Hãy thử lại sau 10 giây
   

Giải pháp đối với việc vi phạm giới hạn về ngưỡng là gì?
Mã thông báo OAuth có giá trị trong một giờ. Người tiêu dùng API nên sử dụng mã thông báo này trong suốt một giờ đó, sau đó chỉ yêu cầu mã thông báo mới khi mã trước hết hạn.

Đâu là ví dụ về thời điểm vượt quá giới hạn về ngưỡng?
5 giây và 2 phút đều là khung thời gian quan sát, lần lượt đối với ngưỡng bùng nổ và ngưỡng trung bình. Ở một trong hai khung thời gian này, nếu một trong hai giới hạn về ngưỡng bị vi phạm từ một địa chỉ IP, thì hình phạt dành cho ngưỡng sẽ được áp dụng.

Ví dụ: Nếu một địa chỉ IP có 3 lần truy cập mỗi giây trong 2 giây, nhưng sau đó tốc độ truy cập giảm xuống dưới 3 lần mỗi giây, thì ngưỡng bùng nổ không bị vi phạm. Tuy nhiên, nếu một địa chỉ IP có 3 lần truy cập mỗi giây, liên tục trong 5 giây, sau đó là 15 lần truy cập trong 5 giây, thì ngưỡng bùng nổ 14 lần truy cập trong 5 giây đã bị vi phạm.