Co to jest ograniczanie przepustowości?

Ograniczanie przepustowości to technika używana przez interfejsy API w chmurze w celu ograniczenia liczby żądań, które można wykonać w określonym przedziale czasu. Ograniczanie przepustowości zapewnia, że interfejs API pozostaje dostępny i odpowiada wszystkim użytkownikom. Zapobiega to również używaniu zbyt wielu zasobów przez pojedynczego użytkownika.

Możesz doświadczać ograniczania przepustowości na kilka sposobów. Jednym z typowych sposobów jest użycie kodów stanu HTTP. Na przykład po przekroczeniu dozwolonej liczby żądań interfejs API może zwrócić kod stanu 429 Too Many Requests. Ta odpowiedź wskazuje, że wysłano zbyt wiele żądań w określonym przedziale czasu i należy zwolnić. Nie każdy interfejs API używa 429: GitHub może również odpowiedzieć za pomocą 403, a Anthropic używa 529, gdy cały interfejs API jest przeciążony.

Oprócz kodów stanu niektóre interfejsy API zawierają więcej informacji w nagłówkach odpowiedzi lub treści. Mogą na przykład użyć nagłówka Retry-After , aby wskazać, jak długo należy poczekać przed wykonaniem kolejnego żądania.

Należy pamiętać o limitach dławienia używanych interfejsów API i wiedzieć, jak obsługiwać dławienie w aplikacjach, aby zachować szybkość reakcji i niezawodność, gdy interfejs API jest mocno obciążony.

Jak ograniczanie wpływa na aplikację

Gdy interfejs API ogranicza aplikację i aplikacja nie obsługuje tego poprawnie, aplikacja ulega awarii, wyświetla ogólny komunikat o błędzie, ponawia próbę tak szybko, że pozostaje objęta ograniczaniem, lub po cichu gubi dane. Podczas opracowywania rzadko widzisz dowolny z tych elementów, ponieważ interfejs API jest szybki, jesteś jedynym użytkownikiem, a dane testowe są małe.

Jak przetestować, czy aplikacja obsługuje throttling

Approach Co znajdziesz To, co przegapisz
Poczekaj na produkcję Rzeczywiste ograniczanie Wszystko, dopóki użytkownik go nie kliknie
Mockuj interfejs API w testach albo pozwól agentowi programistycznemu napisać mocka Czy gałąź ponowień się wykonuje Rzeczywiste kody stanu, Retry-After nagłówki i treści błędów interfejsu API oraz zasady ponawiania prób Twojego zestawu SDK. Aplikacja wymaga również przełącznika tylko do testowania, aby połączyć się z atrapą.
Wywołuj rzeczywiste API, aż API zacznie Cię ograniczać Rzeczywiste zachowanie Nie można wyzwalać dławienia na żądanie i wyczerpujesz swój rzeczywisty limit przydziału
Przechwytuj rzeczywisty ruch aplikacji i symuluj ograniczanie przepustowości Rzeczywiste adresy URL, prawdziwy zestaw SDK i zasady ponawiania prób oraz to, czy aplikacja czeka tak długo, jak określa Retry-After Twój kod w izolacji. Zostaw testy jednostkowe do tego.

Wypróbuj ją w aplikacji

Dev Proxy zwraca odpowiedzi z ograniczeniem przepustowości dla wybranych interfejsów API, podczas gdy aplikacja nadal wywołuje rzeczywiste adresy URL. Informuje również, kiedy aplikacja ponownie wywołuje interfejs API, zanim upłynie Retry-After

Pobierz preset interfejsu API, które wywołuje Twoja aplikacja, i uruchom Dev Proxy przy jego użyciu:

devproxy config get microsoft-graph-rate-limiting
devproxy --config-file "~dataFolder/configs/microsoft-graph-rate-limiting/.devproxy/devproxyrc.json"
API Preset
Microsoft Graph (OneDrive i SharePoint: /drive, /shares, /sites) microsoft-graph-rate-limiting
GitHub github-rate-limiting
OpenAI openai-throttling
Anthropic anthropic-throttling

W przypadku dowolnego innego interfejsu API zobacz Sprawdź, czy moja aplikacja poprawnie obsługuje ograniczanie przepustowości. Aby zainstalować Dev Proxy, zobacz Konfigurowanie narzędzia Dev Proxy.

Następne kroki