Kiintiöiden ja tapahtumamäärärajoitusten opas
FedExin APEja rajoitetaan kolmella toiminnolla: kiintiöt, tapahtumamäärärajoitukset ja kynnykset.
Kiintiöt
Transaktiokiintiö on organisaation lähettämien API-pyyntöjen päiväkohtainen enimmäismäärä. Se tarkoittaa, että APIn käyttäjien on otettava huomioon organisaationsa kaikista projekteista saapuvien API-pyyntöjen kokonaismäärä. Jokainen pyyntö lasketaan mukaan yhtäläisesti FedExin API-vastauksen palauttamasta datamäärästä riippumatta.
Esimerkki: Organisaation kiintiö on 500 000 API-pyyntöä päivässä. Organisaatio on lähettänyt päivän ensimmäisten tuntien aikana 500 000 pyyntöä, joten sen päiväkohtainen kiintiö on saavutettu. Loppupäivän ajan kaikille pyynnöille esitetään virhekoodi ”429 – Too many requests – Daily transaction quota exceeded. Retry after 12:00AM GMT”.
Tapahtumamäärärajoitukset
Projektikohtainen transaktioiden määrä on rajoitettu 1400 tapahtumaan 10 sekunnissa. Toimintaa rajoitetaan, jos määrä ylittyy 10 sekunnin ajanjakson kuluessa.
Jos raja-arvo saavutetaan ensimmäisten sekuntien aikana, kaikkia lähetettyjä tapahtumia rajoitetaan, kunnes 10 sekuntia on kulunut. Käytön rajoituksen aikana esitetään virhekoodi ”429 – Too many requests”.
Jos FedEx vastaanottaa 1400 pyyntöä kahden ensimmäisen sekunnin aikana, sen jälkeen saapuvia tapahtumia rajoitetaan seuraavan kahdeksan sekunnin ajan. Järjestelmässä esitetään myös seuraava virheilmoitus: ”429 – Too many requests – We have received too many requests in a short duration. Please wait a while to try again.”
Rajoitukset poistuvat 10 sekunnin kuluttua, ja uusi laskuri alkaa seurata pyyntöjen määrää seuraavalla 10 sekunnin ajanjaksolla.
Kynnykset
IP-osoitteille määritetyt käyttökynnykset vahvistavat FedExin API-valtuutusprosessin toimintakykyä. Kynnykset ovat käytettävissä vain OAuth-tunnuksen luontipalvelussa. Kynnyksiä on kahdenlaisia:
- Purskekynnys: 3 osumaa sekunnissa jatkuvasti 5 sekunnin aikana.
- Keskimääräinen kynnys: 1 osuma sekunnissa jatkuvasti 2 minuutin aikana.
Jos julkinen IP-osoite ylittää edellä mainittuja kynnysarvoja, järjestelmä käynnistää 10 minuutin estotoiminnon, jonka aikana kaikille uusille pyynnöille annetaan tilakoodi ”403 Käyttö estetty”.
Jos APIn käyttö ylittää jonkin kynnysarvon uudelleen sillä hetkellä voimassa olevan eston aikana, eston kestoa pidennetään. APIn käyttäjät voivat välttää eston jatkumisen varmistamalla, että kynnysarvoja ei ylitetä seuraavan 10 minuutin aikana.
Kynnystoiminnot perustuvat käyttäjän julkiseen IP-osoitteeseen. Jos käyttäjä asettaa enintään 10 näennäiskoneen esiintymää yksittäiselle julkiselle IP-osoitteelle, kaikki kyseisestä IP-osoitteesta saapuvat pyynnöt lasketaan mukaan kynnysarvoon.
Liikenteen hallinta
Liikenteen hallinnan osa-alueita käsitellään seuraavalla kolmella toiminnolla:
Kiintiöt ovat organisaatiokohtaisia, mikä tarkoittaa, että transaktiokiintiö koskee organisaation kaikkien APIen tuottamaa kokonaisliikennettä.
Tapahtumamäärärajoitukset ovat projektikohtaisia, mikä tarkoittaa, että tapahtumamäärärajoitus koskee projektin kaikkien APIen tuottamaa kokonaisliikennettä.
Kynnysarvot määritetään eri IP-osoitteille.
Huomaa: FedEx saattaa laskea yllä mainittujen rajoitustoimintojen raja-arvoja väärinkäytön, liikakäytön ja muun kuin tarkoituksenmukaisen käytön estämiseksi. FedEx pidättää oikeuden muuttaa sallittua määrää ilman ennakkoilmoitusta, jotta se voi ylläpitää APIn käyttäjien tasapuolista pääsyä järjestelmään ja kohdistaa FedExin resursseja tehokkaasti ja tuloksellisesti.
Usein kysytyt kysymykset
Lasketaanko kiintiöön organisaation kaikki API-tapahtumat eri projekteista?
Kiintiö on organisaatiokohtainen. Yhdellä organisaatiolla voi olla yksi tai useampi projekti, ja jokaiseen projektiin voi sisältyä yksi tai useampi API. Näin ollen päiväkohtaiseen kiintiöön lasketaan tietyn organisaation eri projektien kaikkien APIen tuottama kokonaisliikenne.
Jos sama 429-virhe koskee sekä kiintiön että tapahtumamäärärajoituksen ylittymistä, miten voin tietää, mitä olen tehnyt väärin?
Saat lisää tietoa virheen laadusta lukemalla virheilmoituksen.
RAJA-ARVON YLITYS | VIRHEILMOITUS |
---|---|
Kiintiö | Too many requests – Daily transaction quota exceeded. Retry after 12:00AM GMT. |
Tapahtumamäärärajoitus | Liian monta pyyntöä lyhyessä ajassa. Odota hetki ja yritä sitten uudelleen. |
Miten kynnysarvojen ylittyminen voidaan estää?
OAuth-tunnus on voimassa tunnin ajan. Suosittelemme, että API:n käyttäjät hyödyntävät tunnustaan koko tunnin ajan ja että uusi tunnus pyydetään vasta sitten, kun edellinen on vanhentunut.
Millä tavalla kynnysarvo voi esimerkiksi ylittyä?
Purskekynnyksen tarkkailuikkuna on 5 sekuntia, ja keskimääräisen kynnyksen tarkkailuikkuna on 2 minuuttia. Käyttöesto astuu voimaan, jos kumpi tahansa kynnysarvo ylitetään IP-osoitteesta tarkkailuikkunan aikana.
Esimerkki: Jos IP-osoitteella on 3 osumaa sekunnissa 2 sekunnin ajan, mutta osumataajuus laskee alle 3 osumaan sekunnissa, purskekynnys ei ylity. Purskekynnys ylittyy kuitenkin, jos IP-osoitteella on 3 osumaa sekunnissa jatkuvasti 5 sekunnin ajan (esim. vähintään 15 osumaa 5 sekunnissa tällä osumataajuudella).