Udostępnij za pośrednictwem


Co to jest ograniczanie szybkości?

Ograniczanie szybkości to mechanizm kontroli używany przez interfejsy API chmury do regulowania liczby żądań, które użytkownik może wykonać w danym przedziale czasu. Producenci interfejsów API w chmurze używają ograniczania szybkości, aby upewnić się, że przepływ żądań nie przeciąża usługi. Ograniczanie szybkości ustawia limit szybkości i liczby wywołań interfejsu API, zwykle definiowanych pod względem żądań w danym okresie.

Dlaczego interfejsy API w chmurze używają ograniczania szybkości

  • Zapobiegaj przeciążeniu. Ograniczanie szybkości zapewnia, że serwer interfejsu API pozostaje stabilny i dynamiczny, uniemożliwiając każdemu jednemu użytkownikowi lub usłudze zalanie go zbyt wieloma żądaniami.
  • Upewnij się, że jest to sprawiedliwe użycie. Ograniczanie szybkości wymusza zasady sprawiedliwego użycia, zapewniając, że żaden pojedynczy użytkownik nie monopolizuje zasobów interfejsu API, umożliwiając sprawiedliwy dostęp do wszystkich użytkowników.
  • Zabezpieczenia. Pomaga to w ograniczaniu ataków DDoS (rozproszonej odmowy usługi) i innych obraźliwych zachowań przez ograniczenie liczby żądań z potencjalnie złośliwych źródeł.
  • Zarządzanie kosztami. W przypadku dostawców usług w chmurze ograniczanie szybkości pomaga w zarządzaniu kosztami operacyjnymi, zapobiegając nieprzewidywalnemu lub nadmiernemu wykorzystaniu zasobów.
  • Jakość usług. Uniemożliwiając skoki ruchu, ograniczanie szybkości zapewnia spójną jakość usług dla wszystkich użytkowników.

Jak występuje ograniczanie szybkości w aplikacjach

Podczas tworzenia aplikacji, które integrują interfejsy API w chmurze, sprawdź ich dokumentację, aby sprawdzić, czy obsługują one ograniczanie szybkości. Jeśli tak, otrzymasz RateLimit-... lub X-RateLimit-... nagłówki odpowiedzi z informacjami o limitach szybkości. Te informacje można użyć w aplikacji, aby upewnić się, że nie przekraczasz limitów szybkości interfejsu API. Na przykład RateLimit-Remaining nagłówek wskazuje liczbę żądań pozostałych w bieżącym oknie. Jeśli otrzymasz odpowiedź z tym nagłówkiem ustawionym na 0, wiesz, że osiągnięto limit szybkości i powinien poczekać na następne okno przed wysłaniem kolejnego żądania. Nagłówek RateLimit-Reset wskazuje czas resetowania limitu szybkości. Należy pamiętać, że niektóre interfejsy API wysyłają RateLimit-... nagłówki tylko po osiągnięciu progu, na przykład gdy masz 10% pozostałych żądań.

Po przekroczeniu limitu szybkości interfejs API ogranicza żądania zwracające kod stanu HTTP 429 (Zbyt wiele żądań). Niektóre interfejsy API mogą również wysyłać Retry-After nagłówek wskazujący, jak długo należy czekać przed wysłaniem innego żądania.

Aby uniknąć ograniczania przepustowości i upewnić się, że aplikacja pozostaje elastyczna, należy zaimplementować ograniczanie szybkości w aplikacji. W zależności od stosu technologii istnieją różne biblioteki, które ułatwiają obsługę ograniczania szybkości w aplikacji. Po zaimplementowaniu ograniczania szybkości w aplikacji przetestuj, czy obsługuje ona prawidłowe ograniczanie szybkości.

Następne kroki