Záložný server
Záložný server je druhá adresa, na ktorej beží to isté API. Používa sa, keď sa požiadavka na portal.bulkgate.com vôbec nedostane k cieľu — záložný host požiadavku prijme a pošle ju ďalej inou trasou.
Ako je služba postavená
BulkGate beží na niekoľkých serveroch v troch geografických lokalitách. Ak niektorý z nich vypadne, prevádzku automaticky prevezmú zvyšné — z pohľadu integrácie sa nemení nič a portal.bulkgate.com odpovedá ďalej. O tento prípad sa starať nemusíte. Celé usporiadanie popisuje Infraštruktúra.
Čo tým pokryté nie je, je cesta k nám. Výpadok na trase medzi vaším serverom a naším — u operátora, poskytovateľa pripojenia alebo kdekoľvek medzi tým — neovplyvníme a požiadavka sa k nám v takom prípade vôbec nedostane. Práve pre taký prípad je tu záložný host.
Aktuálny stav služby nájdete na bulkgate.status.online.
Adresa
Host je zameniteľný jedna k jednej — cesty, parametre, prihlasovacie údaje aj odpovede sú zhodné s portal.bulkgate.com. Stačí teda v adrese vymeniť doménu:
Pracuje sa s rovnakým účtom, rovnakým tokenom aj rovnakým kreditom. Nemusíte nič zakladať ani nikde prepínať.
Nepoužívajte záložný host ako hlavnú adresu. Kvôli údržbe môže byť kedykoľvek a bez predchádzajúceho upozornenia odstavený — počíta sa s tým, že cez neho ide prevádzka len počas výpadku. portal.bulkgate.com musí v poradí zostať prvý.
Kedy sa naň prepnúť
Záložný host rieši výpadok spojenia, nie chybu požiadavky. Na požiadavku, ktorú API odmietlo, odpovie úplne rovnako.
Prepnite, keď požiadavka nedostane odpoveď:
| situácia | prepnúť? |
|---|---|
| Timeout spojenia alebo čítania | Áno |
| DNS sa nepodarilo preložiť | Áno |
| Spojenie odmietnuté, sieť nedostupná | Áno |
| HTTP 5xx bez tela | Áno |
| Odpoveď s typom chyby (4xx) | Nie |
429 Too Many Requests (limity |
Nie |
Pri posledných dvoch API odpovedalo — požiadavka dorazila a bola vyhodnotená. Zopakovanie na záložnom hoste vráti tú istú chybu a len spotrebuje ďalší pokus z limitu.
Ako si failover zabudovať do integrácie
Poradie adries si držte v poli a skúšajte ich postupne. Ak zlyhá spojenie, ide sa na ďalšiu; ak API odpovedalo, výsledok sa vráti tak, ako je.
Na čo si dať pozor
Timeout neznamená, že sa správa neodoslala. Požiadavka mohla doraziť a odpoveď sa cestou späť stratiť — opakovanie na záložnom hoste by potom správu odoslalo druhýkrát.
Preto pri transakčných endpointoch posielajte duplicates_check zapnutý. Správa s rovnakým textom na rovnaké číslo sa v okne 5 minút zahodí, takže opakovaný pokus nič nezdvojí.
Pri propagačných endpointoch duplicates_check proti opakovaniu nepomôže — odstraňuje duplicity len v rámci jednej dávky, nie naprieč požiadavkami. Opakovaná požiadavka je preň nová dávka a odíde celá znova. Pri hromadných rozosielkach preto radšej opakujte až po overení, či prvý pokus prešiel.
Nastavte si rozumný timeout. Bez neho klient čaká na odpoveď, ktorá nepríde, a k záložnému hostu sa vôbec nedostane.
Pripravujeme idempotenciu API — opakovanú požiadavku bude možné označiť tak, aby ju API spoznalo a vrátilo výsledok tej pôvodnej namiesto nového odoslania. Tým odpadne rozdiel medzi transakčnými a propagačnými endpointmi popísaný vyššie. Hneď ako bude k dispozícii, doplníme sem postup.
Ďakujeme za spätnú väzbu.