Jak bys jedním dotazem získal seznam nezablokovaných prodejců, pokud máš tabulku se všemi prodejci a jinou pouze s blokovanými prodejci?
Golang
Fasáda přistupuje k 10 interním službám (každá 100-300 ms) plus k globální službě v Číně (500 ms), celková doba odezvy je přibližně 3,5 sekundy. Jak byste tento problém vyřešili, aby se zrychlilo zpracování?
Jak byla organizována měkká rezervace zůstatků (soft hold) s konečnou kontrolou při potvrzení rezervace?
Na vstupu jste měli jeden servisní bránu, se kterou komunikovali všichni partneři (B2B)? V kolika instancích běžel?
Máš otázky ke kolegovi?
Jak se vůbec nedostat do služby, která se jistě zhroutí nebo nebude dostupná?
Udržoval Redis data pouze v paměti nebo byl fallback na disk? Co se stane, když Redis spadne?
Bojíš se časového sledovače? Proč?
Kolik kanálů by bylo potřeba k organizaci tohoto mechanismu, pokud bychom používali kanály pro sběr výsledků od služeb?
Kolik máte datových center: jedno nebo více?
Pokud je velký úkol, například soubor o velikosti 10 GB s řádkovými nastaveními, a je třeba zpracovat každý řádek (například vložit tečku na konec), pomohly by gorutiny urychlit tuto práci?
Jak se počítal RPS — jednoduše jste sečetli zatížení všech pák nebo jak?
V jazyce Go jsou gorutiny — lehké vlákna. Můžeš vysvětlit, jak chápeš, kdy je třeba použít gorutinu a kdy ne?
Jak jste implementovali atomárnost zápisu v Redis? Jaký algoritmus jste použili (Lua skript)?
Pokud provedete synchronní dotaz do databáze nebo sousední služby a dotaz trvá 5 sekund, co se stane s vláknem operačního systému, na kterém je služba spuštěna, zatímco je dotaz prováděn?
Jak pochopit, kde je úzké místo při zpracování souboru — pokud se zdá, že zpracování po řádcích je pomalé, a gorutiny zpracovávají v cyklu?
Služba pouze distribuovala data z cache, nebo prováděla ještě nějakou logiku?
Co bys předával uvnitř tohoto kanálu (jakou strukturu dat)?
Existuje služba pro blokování prodejců: jedna metoda přijímá ID prodejce a zapisuje ho do tabulky zablokovaných. Jak bys tuto logiku implementoval?
Řekl jsi, že máš službu, která poslouchá Kafka a aktualizuje cache v Redis, že?