Kiintiöiden ja tapahtumamäärärajoitusten opas
FedEx vastaanottaa useita tuhansia API-pyyntöjä joka päivä. Käytämme kolmea rajoitustoimintoa suuren datamäärän hallitsemiseen. Kiintiöiden, tapahtumamäärärajoitusten ja kynnysarvojen avulla FedEx voi kohdistaa resursseja tehokkaasti ja tuloksellisesti.
Kiintiöt määritetään organisaatio- ja API-projektikohtaisesti.
Organisaatiokohtaiset kiintiöt
Tapahtumakiintiö tarkoittaa organisaatiosta saapuvien API-pyyntöjen päiväkohtaista enimmäismäärää. Se tarkoittaa, että APIa käyttävien 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ä. Jos organisaatio lähettää 500 000 pyyntöä päivän ensimmäisten tuntien aikana, sen päiväkohtainen kiintiö on saavutettu. Loppupäivän ajan kaikille pyynnöille näytetään seuraava virhekoodi ”429 – Too many requests – Daily transaction quota exceeded. Retry after 12:00AM GMT”
API-projektikohtaiset kiintiöt
Tätä kiintiötä sovelletaan kahdella eri tasolla: projekti ja ominaisuus.
Mitä tarkoitamme ominaisuuksilla?
Kukin API on ryhmitelty sen tarjoamien ominaisuuksien mukaan. Kukin ominaisuusryhmä on yhden tai useamman päätepisteen nippu. Esimerkiksi Perustason integroitu näkyvyys ‑ominaisuudella on kuusi API-päätepistettä ja osoitteen vahvistusominaisuudella vain yksi API-päätepiste.
Kiintiön oletusarvoinen ominaisuusraja ja projektikohtainen PCPP-raja seurantaominaisuudelle on 100 000 pyyntöä päivää kohti. Tämä tarkoittaa, että kun mistään organisaation projektista tuleva mihinkään näistä kuudesta päätepisteestä suuntautuva seurantaominaisuuden liikenne ylittää tämän rajan, lähetämme sinulle virheilmoituksen "429 'Too many requests'" kyseisen päivän osalta. Tämä koskee kaikkia sitä seuraavia seurantapyyntöjä näiden kuuden päätepisteen osalta.
Esimerkki: Jos projektin seurantaominaisuuden (jossa on kuusi päätepistettä) raja on 100 000, kaikkien kuuden päätepisteen tapahtumien kokonaismäärä lasketaan mukaan 100 000:n rajaan. Jos projekti ylittää kyseisen rajan, saat seuraavien seurantatapahtumien osalta virhekoodin “429 – Too many requests – Daily transaction quota exceeded” loppupäivän ajan kunnes kello on 0.00 GMT.
Tapahtumamäärärajoitukset
Projektikohtainen tapahtumamäärärajoitus on 1 400 tapahtumaa 10 sekuntia kohti. Toimintaa rajoitetaan, jos 10 sekunnin ajanjakson tapahtumamäärä ylittää tämän rajan.
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 1 400 pyyntöä kahden ensimmäisen sekunnin aikana, sen jälkeen saapuvia tapahtumia rajoitetaan seuraavan kahdeksan sekunnin ajan ja seuraava virheilmoitus näytetään: ”429 – 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 kynnysarvot vahvistavat FedExin API-valtuutusprosessin toimintakykyä. Tämä toiminto on käytettävissä vain Auth-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ää minkään edellä mainitun kynnysarvon, järjestelmä käynnistää 10 minuutin estotoiminnon, jonka aikana kaikille uusille pyynnöille annetaan tilakoodi ”403 Forbidden”
- 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
- Kynnysarvotoiminnot 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:
Organisaatiokohtaiset kiintiöt: Tapahtumakiintiö koskee organisaation kaikkien APIen tuottamaa kokonaisliikennettä.
Projektikohtaiset kiintiöt: Tapahtumakiintiö koskee projektin yhtä API-ominaisuutta varten tuotettua kokonaisliikennettä.
Projektikohtaiset tapahtumamäärärajoitukset: 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 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 |
|---|---|
| Organisaatiokohtaiset kiintiöt | Too many requests Daily transaction quota exceeded. Retry after 12:00AM GMT |
| API-projektikohtaiset kiintiöt | Too many requests: Per project daily quota exceeded. Retry after 12:00 AM GMT |
| Tapahtumamäärärajoitus | Too many requests: Rate limit threshold exceeded. Retry after 10 seconds |
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, ja sen jälkeen osumataajuus on alle 3 osumaa sekunnissa, purskekynnys ei ylity. Mutta jos IP-osoitteella on 3 osumaa sekunnissa jatkuvasti 5 sekunnin ajan ja sen jälkeen 15 osumaa 5 sekunnissa, purskekynnys (14 osumaa 5 sekunnin aikana), on ylitetty.
