Jei atvyks 1000 vienalaikių užklausų, ar bus sukurtas 1000 operacinės sistemos sriegių? Kas nutiks su paslauga šiuo atveju?
Golang
Yra fasadas, kuris agreguoja duomenis iš 10 paslaugų, kiekviena atsako per 100 ms, iš viso apie sekundę. Kaip išspręstum šią problemą, kad galutinis taškas grąžintų duomenis greičiau?
Ar toliau eisi į kitus paslaugas duomenims, jei pirmasis iš 11 paslaugų grąžins klaidą?
Ar Redis buvo viename duomenų centre, ir visi į jį kreipėsi?
Pagal kokį principą pasirinkote architektūrą ir paslaugų ribas?
Kaip išspręsti tą duomenų lenktynių problemą, apie kurią kalbėjome?
Ar Redis buvo visuose trijuose duomenų centruose?
Kokie gali būti šalutiniai efektai naudojant goroutines failo apdorojimui, į ką reikia būti pasiruošus?
Turėjote tris duomenų centrus — kaip buvo organizuota jų replikacijos/rezervavimo schema?
Ar duomenų centrai buvo visiškai kopijos vieni kitų, ar jie papildė vienas kitą? Ar tik maršrutizavote srautą tarp jų?
Kokį blokavimo lauką turite omenyje (paaiškinimas apie denormalizaciją, is_blocked žymeklis)?
O jei goroutine'ai rašo tą pačią eilutę/bufferį, ar tokia problema įmanoma?
Kaip gorutinos gali 'pabėgti' (nutekėti)?
Įvykis atkeliauja į pirmą duomenų centrą iš Kafka, mes jį pagaukiame ir įrašome į Redis. Kaip šie duomenys pateko į visus tris duomenų centrus?
Jūsų gyvenimo aprašyme nurodyta 50-80 tūkst. RPS. Koks tai buvo paslauga ir ką ji darė?
Jūsų gyvenimo aprašyme rašėte, kad optimizavote SQL užklausas. Kaip manote, kaip atrodytų užklausos, kuri pasirinko neužblokuotus pardavėjus, vykdymo planas (EXPLAIN)?
Ar yra kitų būdų, išskyrus kanalus, organizuoti darbą su gorutinomis?
Ar galite papasakoti apie audito algoritmą (duomenų patikrinimą)? Dalyvavote jame? Kaip tai vyko?
Kalbėjote apie read-model su Redis. Ar Redis buvo replikojamas tarp duomenų centrų?
Kaip vienu užklausa gautum neblokuotų pardavėjų sąrašą, turint lentelę su visais pardavėjais ir kitą tik su užblokuotais pardavėjais?