Udostępnij przez


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 określonym czasie. 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. Limity szybkości są zwykle definiowane pod kątem liczby żądań w określonym czasie.

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.
  • Zadbaj o sprawiedliwe użycie. Ograniczanie szybkości wymusza zasady sprawiedliwego użycia, zapewniając, że żaden pojedynczy użytkownik nie monopolizuje zasobów interfejsu API. Ograniczanie szybkości umożliwia sprawiedliwy dostęp do wszystkich użytkowników.
  • Zwiększ bezpieczeństwo. Ograniczanie szybkości pomaga w ograniczeniu ataków 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.
  • Zachowaj jakość usług. Ograniczanie szybkości zapewnia spójną jakość usług dla wszystkich użytkowników, uniemożliwiając skoki ruchu.

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 liczby żądań i należy poczekać na następne okno przed wysłaniem kolejnego żądania. Nagłówek RateLimit-Reset wskazuje czas resetowania limitu szybkości. Niektóre API wysyłają RateLimit-... nagłówki dopiero po osiągnięciu progu. Przykładem jest, gdy masz 10% pozostałych żądań.

Po przekroczeniu limitu szybkości interfejs API ogranicza żądania i zwraca kod stanu HTTP 429 Too Many Requests . Niektóre interfejsy API mogą również wysyłać Retry-After nagłówek, aby wskazać, jak długo należy poczekać przed wysłaniem innego żądania.

Aby uniknąć ograniczania przepustowości i upewnić się, że aplikacja pozostaje elastyczna, zaimplementuj ograniczanie szybkości w aplikacji. W zależności od stosu technologii różne biblioteki mogą pomóc w obsłudze ograniczania szybkości w aplikacji. Po zaimplementowaniu ograniczania szybkości w aplikacji przetestuj, aby sprawdzić, czy obsługuje ona prawidłowe ograniczanie szybkości.

Następny krok