Optimizmo ir pesimizmo blokados — papasakok
Golang
Ar naudojote Kafka kaip saugyklą? Kiek skelbimų buvo Kafka?
Kokiu tikslu dažniausiai naudojamas Consul mikroservisų architektūroje?
Ar turite patirties su infrastruktūra? Ar teko ką nors liesti?
Kuo skiriasi vyresnysis programuotojas nuo vidutinio komandoje?
RPS Vidutiniškai 4-5 tūkst. RPS, piko metu iki 12k Tačiau čia svarbu suprasti, kad pagrindinė apkrova buvo ant Kafka. Kadangi architektūra yra asinchroninė, kiekvieno skelbimo sukūrimo metu mano orkestratorius generuodavo 5-7 įvykių grandinę skirtinguose patikros servisuose. Iš viso mes apdorodavome vidutiniškai iki 30k žinučių per sekundę.
Ar įmonė teikia darbo įrangą?
Kokį atlyginimo lygį svarstote pereinant?
Kokia jūsų bendroji patirtis su infrastruktūra, įskaitant Docker, Kubernetes, CI/CD ir tinklą?
Kaip buvo atliktas apkrovos testas ir kokias metrikas stebėjote?
Kaip sprendėte situacijas, kai jūsų sprendimas buvo atmestas?
Kaip patogu yra hibridinis darbo formatas Maskvoje, su apsilankymu biure bent kartą per savaitę?
Kodėl eilė (nuo kurios žodžio Q)?
Kiek metų turite komercinės patirties su Go kūrimu?
Kodėl nusprendėte įžengti į rinką? Kas dabar ne taip Magnit?
Kaip iteruoti per tvarkingą žemėlapį, išlaikant tvarką? Iteracijos metodo įgyvendinimas.
Jei AddTask naudojamas RLock, kaip elgsis du paralelūs AddTask iškvietimai? Ar jie blokuos vienas kitą?
Papaskink apie atvejį, kai ką nors pasiūlei ir reikėjo įrodyti savo požiūrį.
// Parašykite asinchroninį užduočių tvarkyklį kaip biblioteką // Klientas perduoda objektą (Task) su duomenimis užduočiai atlikti, // mūsų pavyzdyje naudosime tuščią struktūrą. // Tvarkyklė gali apdoroti ne daugiau kaip N užduočių vienu metu, // ir ne daugiau kaip X užduočių gali būti eilėje apdorojimui. // Jei nėra vietos eilėje, iš karto grąžiname klaidą klientui. // Užduotis pradedama apdoroti, jei yra laisvų tvarkytojų. // Simuliuojame apdorojimo trukmę naudodami time.Sleep(5*time.Second). // Kai viena užduotis baigiasi, paimame kitą iš eilės. // Jei eilė tuščia, laukiame naujų užduočių iš klientų. // Su žvaigždute: papildykite Task struktūrą ir gaukite užduočių būsenas per atskirą užklausą package scheduler type Scheduler interface { AddTask(t Task) error Close() } type Task interface { Do() }
Kaip išlaikomas vartotojo būsenos pokytis diegiant be prastovų?