Giới thiệu về giới hạn tỷ lệ API? Các chỉ tiêu, giới hạn và 429s

Giới thiệu về giới hạn tỷ lệ API?

API thu thập dữ liệu không tốn phí tài liệu kết quả yêu cầu và xử lý trạng thái liên quan đến chỉ tiêu cho các tác vụ dữ liệu web đã xác thực.

Tóm tắt ngắn gọn

  • Giới hạn tỷ lệ API là một chính sách máy chủ hạn chế số lượng thao tác mà một người gọi có thể thực hiện trong một phạm vi và khoảng thời gian được xác định. Một giới hạn tỷ lệ không giống như một giới hạn đồng thời hoặc một chỉ tiêu tổng cộng.
  • Xác định người gọi và phạm vi. Cổng hoặc dịch vụ xác định tài khoản, thông tin xác thực, người dùng, đường dẫn và các chiều khác mà chọn chính sách áp dụng. Lưu lượng không xác thực có thể được nhóm theo địa chỉ mạng, trong khi lưu lượng đã xác thực có thể sử dụng giới hạn dựa trên người thuê.
  • Kiểm tra dung lượng có sẵn. Bộ giới hạn đọc hoặc tính toán quyền cho cửa sổ hoặc thùng hiện tại. Việc thực thi phân tán cần trạng thái nhất quán, xử lý đồng hồ cẩn thận và một chính sách rõ ràng cho các bộ đếm cục bộ theo vùng hoặc cổng.
  • Bản đồ mọi giới hạn đã công bố theo tài khoản, thông tin xác thực, người dùng, mạng, điểm cuối và khu vực. Khi các phản hồi 429 xuất hiện, xác định chính xác chiều chính sách trước khi thay đổi khách hàng.
  • Giới hạn tỷ lệ API phân bổ dung lượng yêu cầu giữa các người gọi và theo thời gian.

Định nghĩa và câu trả lời ngắn gọn

Giới hạn tỷ lệ API là một chính sách máy chủ hạn chế số lượng thao tác mà một người gọi có thể thực hiện trong một phạm vi và khoảng thời gian được xác định. Phạm vi có thể là một tài khoản, khóa API, người dùng, địa chỉ IP, điểm cuối, tài nguyên, tổ chức, hoặc sự kết hợp có trọng số. Một giới hạn bảo vệ dung lượng chia sẻ, chứa đựng các trận lũ yêu cầu ngẫu nhiên, hỗ trợ các chỉ tiêu thương mại, và cung cấp cho các nhà điều hành một cách dự đoán để phân bổ công việc tốn kém giữa các khách hàng.

Một giới hạn tỷ lệ không giống như một giới hạn đồng thời hoặc một chỉ tiêu tổng cộng. Các điều khiển tỷ lệ mô tả các thao tác theo thời gian, chẳng hạn như yêu cầu mỗi giây hoặc điểm mỗi phút. Các điều khiển đồng thời giới hạn công việc đang tiến hành ngay lập tức. Các chỉ tiêu thường mô tả một sự cho phép lớn hơn trong một khoảng thời gian thanh toán hoặc dịch vụ. Một khách hàng có thể vẫn dưới chỉ tiêu hàng ngày của nó nhưng lại vượt quá một cửa sổ ngắn, hoặc ở dưới tỷ lệ theo giây trong khi mở quá nhiều công việc đồng thời.

Các máy chủ thực thi giới hạn thông qua các thuật toán như cửa sổ cố định, cửa sổ cuộn, thùng token, và thùng rò rỉ. Cửa sổ cố định đơn giản nhưng cho phép các vụ nổ quanh một ranh giới. Cửa sổ cuộn theo dõi hoạt động gần đây một cách chính xác hơn. Thùng token làm đầy dung lượng theo thời gian và cho phép những vụ nổ giới hạn. Các hệ thống có trọng số asign phí cao hơn cho các điểm cuối đắt tiền, kích thước kết quả lớn, hoặc các thao tác tốn tài nguyên hơn là chỉ đếm mỗi yêu cầu một cách ngang bằng.

HTTP 429 Quá nhiều yêu cầu là tín hiệu tiêu chuẩn rằng một khách hàng đã vượt quá một chính sách tỷ lệ. Phản hồi có thể bao gồm một chỉ dẫn chờ đợi và các trường cụ thể của dịch vụ mô tả giới hạn, dung lượng còn lại, hoặc thời gian đặt lại. Tên tiêu đề và ngữ nghĩa thay đổi giữa các API, do đó hành vi của khách hàng phải tuân theo tài liệu của nhà cung cấp thay vì giả định một tập hợp chung.

Cách một bộ giới hạn đưa ra quyết định

  1. Xác định người gọi và phạm vi. Cổng hoặc dịch vụ xác định tài khoản, thông tin xác thực, người dùng, đường dẫn, và các chiều khác mà chọn chính sách áp dụng. Lưu lượng không xác thực có thể được nhóm theo địa chỉ mạng, trong khi lưu lượng đã xác thực có thể sử dụng giới hạn dựa trên người thuê.
  2. Tính toán chi phí thao tác. Một bộ giới hạn đơn giản đếm một đơn vị cho mỗi yêu cầu. Một bộ giới hạn có trọng số có thể tính phí nhiều đơn vị hơn cho các tìm kiếm phức tạp, các trang lớn, phiên trình duyệt, hoặc các tác vụ tiêu tốn tài nguyên tính toán và dung lượng phía hạ nguồn đáng kể.
  3. Kiểm tra dung lượng có sẵn. Bộ giới hạn đọc hoặc tính toán quyền cho cửa sổ hoặc thùng hiện tại. Việc thực thi phân tán cần trạng thái nhất quán, xử lý đồng hồ cẩn thận, và một chính sách rõ ràng cho các bộ đếm cục bộ theo vùng hoặc cổng.
  4. Trả dữ liệu hoặc phản hồi giới hạn. Công việc được phép tiếp tục và tiêu tốn dung lượng. Công việc bị từ chối nhận 429 hoặc một phản hồi dịch vụ đã được tài liệu hóa. Các khách hàng nên làm chậm tốc độ nộp của họ, tôn trọng khoảng thời gian chờ đợi đã nêu, và tránh những vụ nổ đồng bộ.

Giới hạn tỷ lệ API trong các hệ thống thực tế

API công cộng chia sẻ

Giới hạn ngăn một tích hợp tiêu tốn dung lượng cần thiết của mọi người gọi khác.

Điểm cuối dữ liệu tốn kém

Các đơn vị có trọng số có thể phản ánh việc rendu trình duyệt, các truy vấn lớn, hoặc các chi phí của nhà cung cấp phía hạ nguồn chính xác hơn so với số lượng yêu cầu thô.

Các kế hoạch tài khoản

Các cấp dịch vụ khác nhau có thể nhận các tỷ lệ duy trì khác nhau, kích thước vụ nổ, và tổng cho phép dưới một mô hình thực thi.

Kiểm soát lạm dụng

Các điều khiển cửa sổ ngắn giảm thiểu các vòng lặp ngẫu nhiên và cạn kiệt tài nguyên tự động trong khi các hệ thống bảo mật điều tra hành vi rộng hơn.

Các Thuật toán giới hạn tỷ lệ phổ biến

Một cái nhìn bên cạnh bên ngăn các khái niệm gần nhau không được coi là thay thế cho nhau. Sử dụng sự so sánh để xác định hợp đồng nào đang hoạt động trước khi thay đổi hành vi của khách hàng hoặc máy chủ.

Khái niệm hoặc Tín hiệuÝ nghĩaGhi chú hoạt động
Cửa sổ cố địnhĐếm trong các khối thời gian rời rạcĐơn giản; bùng nổ biên cần chú ý
Nhật ký cửa sổ lănTheo dõi thời gian của các hoạt động gần đâyChính xác nhưng tốn nhiều trạng thái hơn
Bộ đếm cửa sổ lănXấp xỉ hoạt động gần đây qua các thùng chứaCân bằng giữa độ chính xác và lưu trữ
Thùng chứa tokenTiêu thụ token được nạp lại theo thời gianHỗ trợ bùng nổ có kiểm soát
Thùng chứa rò rỉGiải phóng công việc đã xếp hàng với tốc độ ổn địnhLàm mượt đầu ra hướng tới các hệ thống phía hạ lưu

Chẩn đoán Giới hạn Tốc độ API và Thiết kế Vận hành

Khi phản hồi 429 xuất hiện, xác định chính xác chiều chính sách trước khi thay đổi khách hàng. Tách biệt hạn ngạch toàn tài khoản khỏi giới hạn điểm cuối, kiểm soát theo người dùng, giới hạn ẩn danh theo IP, và các giới hạn đồng thời. So sánh dấu thời gian sử dụng một cách tham chiếu đồng hồ và kiểm tra xem có nhiều công nhân hoặc dịch vụ chia sẻ cùng một thông tin xác thực hay không. Một khách hàng có vẻ yên tĩnh trong một quy trình có thể là một phần của tổng phân tán ồn ào.

Tốc độ thực hiện từ phía khách hàng nên được tập trung khi nhiều công nhân chia sẻ một khoản cho phép. Một bộ đếm cục bộ trong mỗi công nhân có thể nhân đôi tỷ lệ dự định. Sử dụng một lịch chia sẻ, hàng đợi, hoặc dịch vụ token hiểu các hoạt động có trọng số và sức chứa hiện tại. Thêm rải ngẫu nhiên vào các lần bắt đầu hàng loạt đã lên lịch để các đội không đồng bộ vào cùng một ranh giới thời gian.

Các nhóm máy chủ nên trả lại phản hồi có thể thực hiện được mà không tiết lộ chi tiết thi hành nhạy cảm. Tài liệu hóa phạm vi, đơn vị đo lường, hành vi bùng nổ, và khoản cho phép cụ thể theo kế hoạch. Giám sát lưu lượng cho phép và bị từ chối, độ bão hòa, chiều sâu hàng đợi, và nồng độ người gọi. Một chính sách được thi hành về mặt kỹ thuật nhưng không hiển thị cho khách hàng sẽ tạo nên gánh nặng hỗ trợ không cần thiết.

Danh sách kiểm tra Thực hiện Giới hạn Tốc độ API

Danh sách kiểm tra dưới đây biến khái niệm thành công việc kỹ thuật có thể xác minh. Áp dụng chỉ những mục phù hợp với giao thức và hợp đồng sản phẩm đang hoạt động, nhưng giữ cùng bằng chứng để kỹ sư khác có thể tái tạo quyết định.

  • Bản đồ mỗi giới hạn đã công bố theo tài khoản, thông tin xác thực, người dùng, mạng, điểm cuối, và khu vực.
  • Phân biệt tốc độ duy trì, khả năng bùng nổ, đồng thời, và hạn ngạch theo kỳ thanh toán.
  • Tập trung tốc độ cho các công nhân chia sẻ một khoản cho phép hoặc thông tin xác thực.
  • Theo dõi trọng số hoạt động khi một số yêu cầu tiêu thụ nhiều khả năng hơn những yêu cầu khác.
  • Tôn trọng tín hiệu chờ đã tài liệu hóa của dịch vụ và giảm tần suất nộp sau khi có 429.
  • Sử dụng bảng điều khiển để theo dõi thể tích cho phép, thể tích bị từ chối, độ bão hòa, và những người gọi hàng đầu.
  • Kiểm tra hành vi ranh giới và các bộ đếm phân tán trước khi công bố một chính sách số.

Sau khi thực hiện, kiểm tra hành vi bình thường, ranh giới, đầu vào sai dạng, trạng thái thiếu, hoạt động đồng thời, và từ chối truy cập cố ý trong một môi trường kiểm soát. Ghi lại trạng thái mong đợi, hình dạng body, điều kiện kết thúc, và chuyển tiếp trạng thái cho mỗi trường hợp. Giám sát sản xuất nên báo cáo cùng các kích thước được sử dụng trong thử nghiệm để một sự cố có thể được so sánh với một cơ sở dữ liệu đã biết.

Tài liệu nên nêu rõ trách nhiệm ở mỗi bên của giao diện. Khách hàng cần các trường bắt buộc, các định danh ổn định, quy tắc sắp xếp, giới hạn, tín hiệu kết thúc, và nghĩa của lỗi. Các nhà điều hành cần chính sách nội bộ, quyết định lưu trữ hoặc định tuyến, các trường có thể quan sát, và phản hồi công khai an toàn. Các hợp đồng mơ hồ dẫn đến việc các nhóm sửa chữa triệu chứng hiển thị ở lớp sai.

Những sai lầm phổ biến với Giới hạn Tốc độ API

Không suy ra thành công, vắng mặt, sự cho phép, thứ tự, hoặc hoàn thành từ một trường mà không có hợp đồng xung quanh. Mã trạng thái, token, kích thước trang, và tiêu đề vận chuyển mỗi cái trả lời một câu hỏi hẹp. Nội dung phản hồi, phương pháp, danh tính, bộ lọc, phiên bản giao thức, và tài liệu của máy chủ cung cấp phần còn lại của ý nghĩa.

Không loại bỏ ngữ cảnh chẩn đoán nhân danh sự đơn giản. Một dòng nhật ký ngắn không ghi lại thông tin yêu cầu, mục tiêu, phiên bản, phạm vi, hoặc ranh giới có thể biến một lỗi nhỏ thành hàng giờ đoán mò. Đồng thời, khả năng quan sát phải che giấu thông tin xác thực, bí mật phiên, URL đã ký, và các trường nội dung nhạy cảm.

Không biến một giải pháp tạm thời thành hợp đồng vĩnh viễn. Sửa chữa vấn đề thứ tự, sự cho phép, định tuyến, tốc độ, đóng khung, hoặc ánh xạ lỗi cơ bản và thêm kiểm tra hồi quy. Một hệ thống trở nên đáng tin cậy khi thất bại là rõ ràng và có giới hạn, không phải khi một lần chạy thủ công hoàn tất.

Kết luận

Giới hạn tốc độ API phân bổ khả năng yêu cầu giữa các người gọi và thời gian. Một chính sách hữu ích nêu rõ phạm vi, đơn vị, tốc độ duy trì, hành vi bùng nổ, và hợp đồng phản hồi của nó. Một khách hàng hữu ích phối hợp các công nhân chia sẻ, đo lường các phản hồi 429, tôn trọng hướng dẫn của máy chủ, và phân tách tỷ lệ, đồng thời, và hạn ngạch. Các hợp đồng rõ ràng ở cả hai bên biến giới hạn thành kiểm soát luồng dự đoán thay vì thất bại bất ngờ.

Đã sẵn sàng để xây dựng một quy trình làm việc dữ liệu đáng tin cậy hơn?

Kết nối các khái niệm giao thức trong hướng dẫn này với bề mặt sản phẩm Scrapeless đã được tài liệu hóa và giữ cho mỗi yêu cầu có thể đo lường từ khi gửi đến kết quả.

Đăng ký hôm nay và nhận $5 tín dụng miễn phíkhông yêu cầu thẻ tín dụng.

Nhận $5 tín dụng của bạn →

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

Tại sao API lại sử dụng giới hạn tốc độ?

API sử dụng giới hạn tốc độ để bảo vệ khả năng, giữ dịch vụ công bằng giữa các người gọi, kiểm soát lũ ảnh hưởng, và điều chỉnh việc sử dụng với kế hoạch hoặc chi phí tài nguyên. Giới hạn nên phù hợp với tài nguyên bị hạn chế thực tế chứ không phải là hàng rào không giải thích.

Sự khác biệt giữa giới hạn tốc độ và hạn ngạch là gì?

Giới hạn tốc độ kiểm soát các hoạt động trong khoảng thời gian ngắn hơn, trong khi hạn ngạch thường giới hạn các khoản cho phép rộng hơn như số nhiệm vụ mỗi ngày hoặc đơn vị theo kỳ thanh toán. Một dịch vụ có thể thực thi cả hai cùng một lúc.

HTTP 429 có nghĩa là gì?

HTTP 429 nghĩa là người gọi đã gửi quá nhiều yêu cầu theo chính sách hiện tại của máy chủ. Khách hàng nên kiểm tra phản hồi, giảm tốc độ, tôn trọng bất kỳ khoảng thời gian chờ nào đã được ghi chép, và xác nhận xem có công nhân khác chia sẻ cùng một phạm vi hay không.

Có phải giới hạn tốc độ luôn dựa trên địa chỉ IP không?

Không. Các API đã xác thực thường giới hạn theo tài khoản, API key, người dùng, tổ chức, điểm cuối hoặc các đơn vị tài nguyên có trọng số. Giới hạn dựa trên IP phổ biến hơn đối với lưu lượng không xác định và có thể nhóm người dùng không liên quan lại với nhau qua các mạng chia sẻ.

Một nhóm nên kiểm tra giới hạn tốc độ như thế nào?

Kiểm tra lưu lượng bền bỉ, các đợt ngắn, ranh giới của cửa sổ, thông tin xác thực chia sẻ, nhiều khu vực và các hoạt động tốn kém. Xác minh cả thông lượng cho phép và các phản hồi bị từ chối, và xác nhận rằng việc giám sát giải thích chính sách nào đã tạo ra mỗi sự từ chối.

Tài liệu tham khảo