Golang
Kā labot kodu ar sacensību nosacījumu, lai tas darbotos deterministiski?
Kāpēc pārgāji no [uzņēmuma] uz [uzņēmumu]?
Pastāstiet vairāk par savu pieredzi: kāds bija projekts un kāda bija jūsu atbildība?
Kādiem kritērijiem izvēlaties uzņēmumus, uz ko balstāties?
Kādus datus nevajadzētu likt kešā?
Vai mēs varam nodot slice kā parametru funkcijai?
Pastāsti par datu bāzēm — ar ko esi strādājis un ar ko šobrīd strādā?
Jautājums par lēnu pakalpojumu Piemēram, pasūtījuma izveides gadījumā. Ir pieprasījums pakalpojumam un atbilde, starp šiem diviem darbiem mēs analīzei saglabājam pasūtītos produktus (piemēram, lai skaitītu produktu popularitāti). Analītikas pakalpojums dažkārt darbojas lēni vai pārsniedz laika limitu, un mēs nespējam atbildēt laikā, zaudējot pasūtījumus. Ko darīt, lai vairs nezaudētu pasūtījumus un naudu? Padomājiet, kā paralēli veikt pasūtījumu un analīzi.
Iedomājieties situāciju: jūs nevarat atrast kopēju valodu ar testētāju jūsu komandā, kurš pastāvīgi 'piesaistās'. Kā jūs ar viņu sazinātos?
Kas ir ziņojumu starpnieki? Kurus pazīstat? Kā atšķiras RabbitMQ no Kafka?
Kas notiks, ja būs nepieciešams atteikties no Kafka un to aizstāt ar citu ziņojumu starpnieku? Kā izolēt Kafka no ārējiem pakalpojumiem?
Kā darbojas izlaišanas process? Kā noritēja pēdējais izlaišanas ar jūsu dalību?
Ko nepieciešams darīt, lai REST API serveris (koda glabātuve) sāktu darboties Kubernetes?
Pastāsti par glābšanas izslēgšanu: kas tas ir, kas notiek tās laikā, kā tas tiek izsaukts? Kādas procesus pakalpojums veic Kubernetes pēc SIGTERM saņemšanas?
Kur, jūsuprāt, sākas highload? Kāda ir robeža starp highload un ne-highload?
Jums ir pakalpojums, kas ģenerē daudz goroutine. Kā jūs ierobežotu vienlaicīgi darbojošo goroutine skaitu?
Jūsu pakalpojums bija API, ko izmantoja citi pakalpojumi. Redis glabāja datus bagātināšanai — kāpēc katru pieprasījumu jūs nevaicājāt katalogu pakalpojumu (par noliktavām utt.)?
Kas ir sistēmas izsaukums (syscall)?
Pastāstiet sīkāk par Go projektēm
Kura no šīm iespējām ir visbiežāk sastopama, mēģinot palaist ļoti lielu goroutine skaitu (piemēram, desmitiem tūkstošu) bez papildu kontroles? - Galvenā problēma radīsies, bloķējot globālo mutex iekšā runtime, kas novedīs pie pilnīgas programmas darbības apturēšanas - Go plānotājs izpildīs goroutines mazās grupās secīgi, tāpēc to skaita pieaugums praktiski neietekmēs atmiņas patēriņu - Masveida goroutine radīšana var novest pie ievērojama atmiņas patēriņa un papildu plānotāja izmaksām; šādos gadījumos ir piemērots worker pool - Ja goroutine skaits pārsniedz loģisko procesoru skaitu, Go automātiski sāks noraidīt jaunas goroutine palaišanas ar paniku