A homlokzat 10 belső szolgáltatáshoz (mindegyik 100-300 ms) és egy globális szolgáltatáshoz Kínában (500 ms) fér hozzá, a teljes válaszidő körülbelül 3,5 másodperc. Hogyan oldanád meg ezt a problémát a feldolgozás gyorsítása érdekében?
Golang
Ha az egyik szolgáltatás, amit használsz, hibát jelez, mit fogsz tenni és hogyan kezeled ezt, ha van csatorna?
Hogyan szervezték meg a soft hold maradványokat végső egyeztetéssel a foglalás megerősítésekor?
Egyetlen szolgáltatási átjáró volt a bemenetnél, amellyel minden partner (B2B) kommunikált? Hány példányban futott?
Vannak kérdéseid a kollégához?
Hogyan lehet elkerülni, hogy egyáltalán ne menjünk el egy olyan szolgáltatáshoz, amely biztosan összeomlik vagy elérhetetlen lesz?
A Redis kizárólag memóriában tartotta az adatokat, vagy volt fallback a lemezen? Mi történik, ha a Redis leáll?
A Go nyelvben vannak goroutine-ok — könnyű szálak. El tudod magyarázni, hogyan érted, mikor kell goroutine-t használni, és mikor nem?
Ha van egy nagy feladat, például egy 10 GB-os fájl soronkénti beállításokkal, és minden sort meg kell dolgozni (például pontot tenni a végére), segítenének-e a goroutine-ok ennek a munkának a felgyorsításában?
Félsz az időnyomkövetőtől? Miért?
Ha csatornákat használunk az eredmények gyűjtésére a szolgáltatásokból, hány csatornára lenne szükség ennek a mechanizmusnak a szervezéséhez?
Hány adatközpontod volt: egy vagy több?
Hogyan számították az RPS-t — egyszerűen összeadták az összes fogantyú terhelését, vagy hogyan?
Hogyan valósította meg a Redis írásának atomosságát? Milyen algoritmust használt (Lua-szkript)?
Hogyan lehet megérteni, hol a szűk keresztmetszet a fájl feldolgozásában — ha a soronkénti feldolgozás lassúnak tűnik, és a goroutine-ok ciklusban dolgoznak?
Ha szinkron kérdést küldesz az adatbázisnak vagy egy szomszédos szolgáltatásnak, és a kérés 5 másodpercig tart, mi fog történni az operációs rendszer szálával, amelyen a szolgáltatás fut, amíg a kérés végrehajtódik?
Főként távolról dolgozik?
Azt mondtad, hogy van egy szolgáltatásod, ami hallgat a Kafka-ra és frissíti a cache-t a Redis-ben, igaz?
Mit közvetítenél ezen a csatornán belül (milyen adatstruktúra)?
A szolgáltatás egyszerűen csak a cache-ből osztotta ki az adatokat, vagy végrehajtott még valamilyen logikát?