Záložní server
Záložní server je druhá adresa, na které běží tatáž API. Používá se, když se požadavek na portal.bulkgate.com vůbec nedostane k cíli — záložní host požadavek přijme a přepošle dál přes jinou trasu.
Jak je služba postavená
BulkGate běží na několika serverech ve třech geografických lokalitách. Vypadne-li některý z nich, provoz se automaticky přebere zbývajícími — z pohledu integrace se nemění nic a portal.bulkgate.com odpovídá dál. O tenhle případ se starat nemusíte. Celé uspořádání popisuje Infrastruktura.
Co tím pokryté není, je cesta k nám. Výpadek na trase mezi vaším serverem a naším — u operátora, poskytovatele připojení nebo kdekoli mezi tím — neovlivníme, a požadavek se k nám v takovém případě vůbec nedostane. Právě pro něj je záložní host.
Aktuální stav služby najdete na bulkgate.status.online.
Adresa
Host je zaměnitelný jedna ku jedné — cesty, parametry, přihlašovací údaje i odpovědi jsou shodné s portal.bulkgate.com. Stačí tedy v adrese vyměnit doménu:
Pracuje se stejným účtem, stejným tokenem i stejným kreditem. Nemusíte nic zakládat ani nikde přepínat.
Nepoužívejte záložní host jako hlavní adresu. Kvůli údržbě může být kdykoli a bez předchozího upozornění odstavený — počítá se s tím, že přes něj jede provoz jen po dobu výpadku. portal.bulkgate.com musí v pořadí zůstat první.
Kdy se na něj přepnout
Záložní host řeší výpadek spojení, ne chybu požadavku. Na požadavek, který API odmítlo, odpoví úplně stejně.
Přepněte, když požadavek nedojde k odpovědi:
| situace | přepnout? |
|---|---|
| Timeout spojení nebo čtení | Ano |
| DNS se nepodařilo přeložit | Ano |
| Spojení odmítnuto, síť nedostupná | Ano |
| HTTP 5xx bez těla | Ano |
| Odpověď s typem chyby (4xx) | Ne |
429 Too Many Requests (limity |
Ne |
U posledních dvou API odpovědělo — požadavek dorazil a byl vyhodnocen. Zopakovat ho na záložním hostu vrátí tutéž chybu a jen spotřebuje další pokus z limitu.
Jak si failover zabudovat do integrace
Pořadí adres si držte v poli a zkoušejte je po sobě. Selže-li spojení, jde se na další; odpověděla-li API, výsledek se vrací tak jak je.
Na co si dát pozor
Timeout neznamená, že se zpráva neodeslala. Požadavek mohl dorazit a odpověď se cestou zpět ztratit — opakování na záložním hostu by pak zprávu odeslalo podruhé.
Proto u transakčních endpointů posílejte duplicates_check zapnutý. Zpráva se stejným textem na stejné číslo se v okně 5 minut zahodí, takže opakovaný pokus nic nezdvojí.
U promočních endpointů duplicates_check proti opakování nepomůže — odstraňuje duplicity jen v rámci jedné dávky, ne napříč požadavky. Opakovaný požadavek je pro něj nová dávka a odejde celý znovu. U hromadných rozesílek proto raději opakujte až po ověření, jestli první pokus prošel.
Nastavte si rozumný timeout. Bez něj klient čeká na odpověď, která nepřijde, a k záložnímu hostu se vůbec nedostane.
Připravujeme idempotenci API — opakovaný požadavek půjde označit tak, aby ho API poznalo a vrátilo výsledek toho původního místo nového odeslání. Tím odpadne rozdíl mezi transakčními a promočními endpointy popsaný výš. Jakmile bude k dispozici, doplníme sem postup.
Děkujeme za zpětnou vazbu.