So sánh các chính sách về Hạn mức và SpikeArrest

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Chính sách Hạn mức và SpikeArrest — bạn đang băn khoăn không biết nên sử dụng chính sách nào để đáp ứng tốt nhất nhu cầu giới hạn tốc độ của mình? Hãy xem bảng so sánh bên dưới.

Hạn mức SpikeArrest
Bạn có thể sử dụng kỹ thuật này để: Giới hạn số lượng kết nối mà ứng dụng có thể thực hiện với phần phụ trợ mục tiêu của proxy API trong một khoảng thời gian cụ thể. Bảo vệ phần phụ trợ mục tiêu của proxy API khỏi các đợt tăng lưu lượng truy cập nghiêm trọng và các cuộc tấn công từ chối dịch vụ.
Không sử dụng thuộc tính này để:

Đừng sử dụng tính năng này để bảo vệ phần phụ trợ mục tiêu của proxy API khỏi sự gia tăng đột biến về lưu lượng truy cập.

Để làm việc đó, hãy sử dụng chính sách SpikeArrest.

Đừng sử dụng chỉ số này để đếm và giới hạn số lượng kết nối mà ứng dụng có thể thực hiện với phần phụ trợ mục tiêu của proxy API trong một khoảng thời gian cụ thể.

Để làm việc đó, hãy sử dụng Chính sách hạn mức.

Lưu trữ số lượng? Không
Các phương pháp hay nhất để đính kèm chính sách:

Đính kèm thông tin này vào ProxyEndpoint Request PreFlow (Quy trình trước yêu cầu ProxyEndpoint), thường là sau khi xác thực người dùng.

Thao tác này cho phép chính sách kiểm tra bộ đếm hạn mức tại điểm truy cập của proxy API.

Đính kèm vào ProxyEndpoint Request PreFlow (Quy trình trước yêu cầu ProxyEndpoint), thường là ở đầu quy trình.

Điều này giúp bảo vệ sự gia tăng đột biến tại điểm truy cập của proxy API.

Mã trạng thái HTTP khi đã đạt đến giới hạn:

500 (Lỗi máy chủ nội bộ) *

500 (Lỗi máy chủ nội bộ) *

Thông tin cần biết:
  • Bộ đếm hạn mức được lưu trữ trong Cassandra.
  • Định cấu hình chính sách để đồng bộ hoá bộ đếm một cách không đồng bộ nhằm tiết kiệm tài nguyên.
  • Quá trình đồng bộ hoá bộ đếm không đồng bộ có thể gây ra độ trễ trong phản hồi giới hạn tốc độ, điều này có thể cho phép các lệnh gọi vượt quá giới hạn mà bạn đã đặt một chút.
  • Thực hiện điều tiết dựa trên thời điểm nhận được lưu lượng truy cập gần đây nhất. Thời gian này được lưu trữ cho mỗi trình xử lý thông báo.
  • Nếu bạn chỉ định giới hạn tốc độ là 100 lệnh gọi mỗi giây, thì chỉ 1 lệnh gọi mỗi 1/100 giây (10 mili giây) sẽ được phép trên trình xử lý thông báo. Lệnh gọi thứ hai trong vòng 10 mili giây sẽ bị từ chối.
  • Ngay cả khi có giới hạn tốc độ cao mỗi giây, các yêu cầu gần như đồng thời có thể dẫn đến việc bị từ chối.
Xem thêm thông tin: Chính sách về hạn mức Chính sách về SpikeArrest

* Đối với Chính sách hạn mứcChính sách SpikeArrest, mã trạng thái HTTP mặc định khi vượt quá giới hạn tốc độ là 500 Internal Server Error chung. Bạn có thể thay đổi mã trạng thái cho các chính sách đó thành 429 Too Many Requests bằng cách thêm một thuộc tính cấp tổ chức (features.isHTTPStatusTooManyRequestEnabled). Nếu bạn là khách hàng của Cloud, hãy liên hệ với Nhóm hỗ trợ Apigee Edge để bật thuộc tính này.