Vejledning for kvote- og hastighedsgrænser
FedEx modtager mange tusinde API-anmodninger hver dag. Vi anvender tre begrænsningsmekanismer til at håndtere den store mængde. Kvoter, hastighedsbegrænsninger og tærskler anvendes for at allokere FedEx-ressourcer effektivt og konsekvent.
Kvoter defineres pr. organisation og pr. API-projekt.
Kvoter pr. organisation
Transaktionskvoten er det maksimale antal API-anmodninger, der er tilladt fra en organisation i løbet af en dag. Dette betyder, at API-brugere bør overveje det samlede antal API-anmodninger, der startes for alle projekter inden for én enkelt organisation. Hver anmodning tæller lige meget, uanset mængden af data, der returneres i FedEx API-svaret.
Eksempel: En organisation har en kvote på 500.000 API-anmodninger pr. dag. Hvis en organisation når 500.000 indsendte anmodninger inden for de første par timer af dagen, vil den have nået sin kvote. Resten af dagen vil fejlkoden “429 – For mange anmodninger – Daglig transaktionskvote overskredet. Prøv igen efter kl. 02:00" blive vist for hver anmodning indtil den følgende dag
Kvoter pr. API-projekt
Denne kvote anvendes på to forskellige niveauer: projekt og kapacitet.
Hvad mener vi med kapacitet?
Hver API grupperes efter den kapacitet, den yder. Hver kapacitetsgruppe er et bundt af ét eller flere slutpunkter. For eksempel har API'en Track en API-kapacitet på seks API-slutpunkter, mens Address Validation kun har en kapacitet på ét API-slutpunkt.
Standardkvote-grænsen pr. kapacitet pr. projekt (PCPP, Per Capability Per Project) for Track-API'en er 100.000 anmodninger pr. dag. Det betyder, at når trafikken fra et hvilket som helst af projekterne i en organisation til et af de seks slutpunkter under Track-API'en overskrider denne grænse, så sender vi dig en fejlmelding, der lyder "429 'For mange anmodninger'" indtil slutningen af dagen. Dette gælder for alle efterfølgende Track-anmodninger for hvert af de seks slutpunkter
Eksempel: Hvis et projekt har en begrænsning på 100.000 pr. Track-API (med seks slutpunkter), vil det samlede antal transaktioner for alle seks slutpunkter blive regnet med i begrænsningen på 100.000. Hvis dit projekt overstiger denne grænse, vil du for efterfølgende Track-transaktioner modtage en fejlmelding, der lyder "429 – For mange anmodninger – Daglig transaktionsgrænse overskredet" resten af dagen ind til kl. 02:00.
Hastighedsgrænser
Hvert projekt har en hastighedsgrænse på 1.400 transaktioner i løbet af 10 sekunder. Der anvendes begrænsninger, hvis transaktioner overskrider denne grænse i løbet af hver 10-sekunders tidsramme.
Hvis denne grænse nås i løbet af de første få sekunder, vil alle transaktioner, der sendes i de resterende sekunder af det 10 sekunders vindue, blive begrænset. I løbet af denne begrænsningsperiode vises fejlkoden "429 - For mange anmodninger".
Hvis FedEx modtager 1.400 anmodninger i løbet af de første to sekunder, begrænses efterfølgende transaktioner i de næste otte sekunder og fejlkoden “429 – For mange anmodninger – Vi har modtaget for mange anmodninger i en kort periode. Vent et stykke tid, og prøv igen" vises.
Når der er gået 10 sekunder, ophæves begrænsningerne, og en anden tæller vil begynde at tracke antallet af anmodninger i løbet af de næste 10 sekunder.
Tærskler
Der anvendes tærskler på IP-adresseniveau for at gøre FedEx API-godkendelsesprocessen modstandsdygtig. Denne mekanisme gælder kun for servicen til generering af Auth-token. Der findes to typer tærskler:
- Overskridelsestærskel: 3 forekomster i sekundet, kontinuerligt i løbet af 5 sekunder
- Gennemsnitstærskel: 1 forekomst pr. sekund, kontinuerligt i løbet af 2 minutter
- Når en offentlig IP-adresse overtræder nogen af disse tærskelgrænser, vil den blive straffet i 10 minutter, og alle yderligere anmodninger i løbet af denne 10-minutters tidsramme vil modtage en "403 Forbudt"-statuskode
- Hvis API-brugere fortsætter med at overtræde tærskelgrænser i løbet af denne straftid, forlænges straftiden. API-brugere kan afslutte deres straftid ved ikke at overtræde tærskelgrænsen i de næste 10 minutter
- Tærskelmekanismer er baseret på en brugers offentlige IP-adresse. Hvis en bruger opsætter 10 virtuelle maskine-instanser bag én offentlig IP-adresse, vil alle anmodninger fra denne IP-adresse tælle med i tærskelgrænsen.
Trafikstyring
Hver af disse tre mekanismer håndterer et særskilt aspekt af trafikstyring:
Kvoter, som er anvendt på organisationsniveau: Den kombinerede trafik, der genereres af alle API'er i en organisation, vil være underlagt denne transaktionskvote.
Kvoter, som er anvendt på projektniveau: Den kombinerede trafik, der genereres for én API-kapacitet i et projekt, er underlagt denne transaktionskvote.
Hastighedsgrænser anvendt på projektniveau: Den kombinerede trafik, der genereres af alle API'er i et projekt, vil være underlagt denne hastighedsgrænse.
Der anvendes tærskler på IP-adresseniveau.
Bemærk: FedEx kan nedsætte grænse(r) for enhver af de ovennævnte begrænsningsmekanismer for at forhindre misbrug, overforbrug og forkert brug. FedEx forbeholder sig retten til at ændre tildeling uden forudgående varsel for at opretholde lige adgang blandt API-brugere og for at allokere FedEx-ressourcer effektivt og konsekvent.
Ofte stillede spørgsmål
Bliver alle API-transaktioner fra forskellige projekter i en organisation medregnet i kvoten?
Kvoten anvendes på organisationsniveau. Under én organisation kan du have et eller flere projekt(er), og under hvert projekt kan du have en eller flere API'er. Som følge heraf tælles den kombinerede trafik, der genereres af alle API'er fra forskellige projekter, som er under en organisation, med i en daglig kvote.
Hvordan kan jeg se, hvilken type overtrædelse jeg har pådraget mig, hvis den samme fejl 429 returneres for både en kvoteovertrædelse og en overtrædelse af hastighedsgrænsen?
Du kan identificere overtrædelsen ved at læse fejlmeddelelsen.
OVERTRÆDELSE | FEJLMEDDELELSE |
---|---|
Kvoter pr. organisation | For mange anmodninger – Daglig transaktionskvote overskredet. Prøv igen efter kl. 02.00 |
Projektkvoter pr. API | For mange anmodninger: Daglig kvote pr. projekt overskredet. Prøv igen efter kl. 02.00 |
Hastighedsgrænse | For mange anmodninger: Tærskel for hastighedsgrænse overskredet. Prøv igen efter 10 sekunder |
Hvad er løsningen for overtrædelse af tærskelgrænsen?
Et OAuth-token er gyldigt i en time. Vi anbefaler, at API-brugere bruger dette token i den hele time og derefter anmoder om et nyt token, når det forrige udløber.
Hvad er et eksempel på, hvornår tærskelgrænsen overskrides?
Både 5 sekunder og 2 minutter er observationsvinduer for henholdsvis overskridelsestærskel og gennemsnitstærskel. Tærskelstraffen pålægges under et af disse vinduer, hvis en af tærskelgrænserne overtrædes fra en IP-adresse.
Eksempel: Hvis en IP-adresse har 3 forekomster pr. sekund i 2 sekunder, efterfulgt af en hastighed under 3 forekomster i sekundet, er overskridelses-tærsklen ikke blevet overtrådt. Men hvis en IP-adresse har 3 forekomster pr. sekund kontinuerligt i 5 sekunder efterfulgt af 15 forekomster på 5 sekunder, så er overskridelses-tærsklen på 14 forekomster på 5 sekunder blevet overtrådt.