Golang
Miért váltottál a(z) [cég] cégről a(z) [cég] cégre?
Meséljen részletesebben a tapasztalatáról: miről szólt a projekt, és mi volt a felelőssége?
Milyen kritériumok alapján válogatsz a cégek között, miben támaszkodsz?
Milyen adatokat nem érdemes cache-be tenni?
Átadhatunk egy szeletet függvény paraméterként?
Mesélj az adatbázisokról — mivel dolgoztál és mivel dolgozol most?
Kérdés a lassú szolgáltatásról A rendelés létrehozásának példáján keresztül. Van egy kérés a szolgáltatáshoz és egy válasz, ezek között a műveletek között az elemzett termékeket (például a termékek népszerűségének számításához) tároljuk az analitikában. Az analitika szolgáltatás időnként lassan működik vagy timeout-ol, és nem tudunk időben válaszolni, így rendeléseket veszítünk. Mit tegyünk, hogy többé ne veszítsük el a rendeléseket és a pénzt? Gondolkodjon el azon, hogyan lehet párhuzamosítani a rendelést és az analitikát.
Képzelje el a helyzetet: nem talál közös hangot egy tesztelővel a csapatában, aki folyamatosan 'körülötted csipkelődik'. Hogyan fogsz kommunikálni?
Mi az az üzenetközvetítők? Melyeket ismered? Miben különbözik a RabbitMQ a Kafkától?
Mi történik, ha le kell mondani a Kafka-ról és helyette más üzenetközvetítőt kell használni? Hogyan izoláljuk a Kafka-t a külső szolgáltatásoktól?
Hogyan működik a kiadási folyamat? Milyen volt az utolsó kiadás a részvételeddel?
Mit kell tenni ahhoz, hogy a REST API szerver (kód tároló) elkezdjen működni Kubernetesben?
Mesélj a graceful shutdown-ról: mi ez, mi történik közben, hogyan hívják? Milyen folyamatokat hajt végre a szolgáltatás a Kubernetesben a SIGTERM fogadását követően?
Szerinted hol kezdődik a highload? Mi a határ a highload és a nem-highload között?
Van egy szolgáltatásod, ami sok goroutine-t indít. Hogyan korlátoznád a párhuzamosan futó goroutine-ok számát?
Az ön szolgáltatás egy API volt, amit más szolgáltatások használtak. Redisben tároltad az adatok gazdagításhoz — miért nem kérdezted meg minden kérésnél a katalógus szolgáltatást (a raktárakról stb.)?
Mi az a rendszerhívás (syscall)?
Meséljen a Go projektekről részletesebben
Melyik a következő lehetőség a legvalószínűbb, ha megpróbálsz nagyon nagy számú goroutine-t (például tízezreket) indítani további ellenőrzés nélkül? - A fő probléma a globális mutex blokkolásából ered a runtime-ben, ami a program teljes leállásához vezet - A Go ütemezője kis csoportokban fogja végrehajtani a goroutine-okat szekvenciálisan, így azok számának növekedése szinte nem befolyásolja a memóriafelhasználást - A goroutine-ok tömeges létrehozása jelentős memóriafelhasználáshoz és a ütemező többletköltségéhez vezethet; ilyen esetekben egy munkás pool megfelelő - Ha a goroutine-ok száma meghaladja a logikai processzorok számát, a Go automatikusan el fogja utasítani az új goroutine indításokat pánikkal
Beszélj a Kubernetesről — mi az, miben különbözik a Dockertől, mik a fő összetevők?