Ką sako Go konvencija apie WaitGroup naudojimą ir grąžinamus tipus (priimant sąsajas, grąžinant konkrečius tipus)?
Golang
Kaip galėtume išorėje tvarkyti klaidas, kurios įvyksta užduotyse, jei norėtume tai padaryti?
Kodėl reikalinga normalizacija?
Kokią technologiją/įrankį naudojate?
Naudojote CTE? Papasakokite, kas tai yra.
Kokia buvo jūsų vaidmuo sprendžiant architektūrinius sprendimus paieškos paslaugos kūrimo metu?
Kokius indeksų tipus PostgreSQL naudotumėte, išskyrus B-tree?
Ar praktikoje naudoji kontekstus? Papasakok.
Ar galima sukurti indeksą tik replikacijoje, bet ne pagrindinėje?
Ar vis dar yra duomenų lenktynių įgyvendinime? Ypač Keys metode, kuris grąžina raktų gabalėlį?
func New(workers, queue, int) Scheduler { s := &scheduler { queue := make(chan Task, queue) for i := 0; i < workers; i++ { wg.Add(1) go func() { defer wg.Done() for task := range s.queue { task.Do() } }() } } return s } func (s *scheduler) Close() { close(s.queue) s.wg.Wait() } type Task interface { Do() }
Kuo skiriasi SELECT FOR UPDATE nuo SELECT FOR SHARE?
Ar turite patirties rašant Kubernetes operatorius, administruojant operatorius, Helm Chart?
Ar norite rašyti klasikinius worker pool?
Kodėl nepanaudojote Redis vietoj saugojimo duomenų bazėje?
Naudojote lango funkcijas?
Kokie dokumentai buvo saugomi ELK?
Optimizmo ir pesimizmo blokados — papasakok
Ar turite patirties su infrastruktūra? Ar teko ką nors liesti?
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ę.