Ak jedna zo služieb, ktorú používaš, vráti chybu, čo budeš robiť a ako to budeš spracovávať, ak je k dispozícii kanál?
Golang
Ako bola organizovaná mäkká rezervácia zostatkov (soft hold) s konečnou kontrolou pri potvrdení rezervácie?
Fasáda pristupá 10 interným službám (každá 100-300 ms) plus globálnej službe v Číne (500 ms), celková doba odozvy je približne 3,5 sekundy. Ako by ste tento problém vyriešili, aby ste zrýchlili spracovanie?
Na vstupe ste imeli en sam servis-gateway, s katerim so komunicirali vsi partnerji (B2B)? V koliko instancah je deloval?
Máš otázky kolegovi?
Zadrževal Redis podatke iba v pamäti alebo bol fallback na disk? Čo sa stane, ak Redis spadne?
Ako sa vôbec nedostať k službe, ktorá určite zlyhá alebo bude nedostupná?
Ak je veľká úloha, napríklad súbor s veľkosťou 10 GB s nastaveniami po riadku, a je potrebné spracovať každý riadok (napríklad vložiť bodku na konci), pomohli by goroutine urýchliť túto prácu?
Bojíš sa časového sledovača? Prečo?
Ak používate kanály na zber výsledkov zo služieb, koľko kanálov by bolo potrebných na organizáciu tohto mechanizmu?
Koľko dátových centier ste mali: jedno alebo viac?
Ako sa počítalo RPS — jednoducho ste sčítali záťaž na všetkých rukovätiach, alebo ako?
V jazyku Go sú gorutiny — ľahké vlákna. Môžeš vysvetliť, ako rozumieš tomu, kedy je potrebné použiť gorutinu a kedy nie?
Ako ste implementovali atomárnosť zápisu v Redis? Aký algoritmus ste použili (Lua skripta)?
Ak vykonáte synchronnú požiadavku na databázu alebo susednú službu a požiadavka trvá 5 sekúnd, čo sa stane s vláknom operačného systému, na ktorom beží služba, počas vykonávania požiadavky?
Ako pochopiť, kde je úzka časť pri spracovaní súboru — ak sa zdá, že spracovanie po riadkoch je pomalé, a gorutiny spracovávajú v cykle?
Čo by si prenášal v tomto kanáli (akú dátovú štruktúru)?
Služba len distribuovala údaje z cache, alebo vykonávala ešte nejakú logiku?
Povedal si, že máš službu, ktorá počúva Kafka a aktualizuje cache v Redis, že?
Existuje služba na blokovanie predajcov: jedna metóda prijíma ID predajcu a ho zapisuje do tabuľky zablokovaných. Ako by si implementoval túto logiku?