Sobes.tech

Golang

Kas kasutate avalikke pilvemooduleid? Kui jah, siis milliste teenusepakkujate ja teenustega?

185

Kas teil on kogemusi jaotatud süsteemide toetamisel või arendamisel?

185

tüüp Response liides {} tüüp Backend liides { Invoke(ctx: kontekst, req: Request): Response, error } var _ Backend = &BackendImpl{} // addr näitab konkreetse näite ip:port aadressi func NewBackend(addr: string) *BackendImpl tüüp Balancer struktuur { // TODO backends []*BackendImpl index int mu sync.Mutex } var _ Backend = &Balancer{} func (b: *Balancer) Invoke(ctx: kontekst, req: Request) (Response, error) { kui len(b.backends) == 0 { tagasta nil, fmt.Errorf("Backends massiivis on 0 elementi") } b.mu.Lock() index := b.index kui b.index + 1 == len(b.backends) { b.index = 0 index = 0 } b.mu.Unlock() resp, err := b.backends[index].Invoke(ctx, req) tagasta resp, err } // addrs sisaldab kõiki tasakaalustatud näidete aadresse func NewBalancer(addrs: []string) *Balancer { // TODO backends := make([]*BackendImpl, len(addrs))

185

Kuidas te töötate arhitektuuriga — kas meeskonnas on arhitekt, platvorm, komisjon?

184

Kui kiiresti töötab lineaarne otsing kõigi backendide puhul kõrge RPS (näiteks 30 000 RPS ja 10 backendi)?

183

type Balancer struct { // TODO backends []*BackendImpl index int mu sync.Mutex N int K time.Duration } var _ Backend = &Balancer{} func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { if len(b.backends) == 0 { return nil, fmt.Errorf("Backends in slice count 0") } b.mu.Lock() index := b.index for b.backends[index].banned { b.index = (b.index + 1) % len(b.backends) index = b.index } b.index = (b.index + 1) % len(b.backends) b.mu.Unlock() backend := b.backends[index] resp, err := backend.Backend.Invoke(ctx, req) if err != nil && backend.countErrors < b.N { backend.mu.Lock() backend.countErrors += 1 if backend.countErrors == b.N { backend.banned = true go func() { time.Sleep(b.K) backend.mu.Lock() defer backend.mu.Unlock() backend.banned = false backend.countErrors = 0 }() } backend.mu.Unlock() } return resp, err } // addrs contain all the addresses of the balanced instances func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImplF, len(addrs)) for _, addr := range addrs { implF := BackendImplF{ Backend: NewBackend(addr), } backends = append(backends, &implF) } }

181

Kui paljudes hostides töötas teenus ja kui palju eksemplare käivitati?

180

Mis oli suurim andmemahuti, millega olete andmebaasides töötanud?

180

Räägi mulle rohkem oma esimesest töökohast aastatel 2019–2021.

180

Kuidas kiiresti kontrollida, kas aknas on kõik sümbolid (kahe kaardi võrdlus)?

180

Kui aktiivsed otsingud on? Võib-olla on juba mõned pakkumised?

180

Kas on lihtsamad ja kiirem viis koormuse jaotamiseks, kui valida kõige vähem koormatud backend?

179

/** :-))) :-(( "ab :-)" = "ab " "ab :-)))" = "ab " "ab :-)))(" = "ab (" "ab ):-)" = "ab )" ":-)" = "" **/ func deleteP(str string) string { n := len(str) res := make([]byte, 0, n) i := 0 for i < n { if str[i] == ':' && str[i+1] == '-' && (str[i+2] == ')' || str[i+2] == '(') { ch := str[i+2] i += 2 for i < n && str[i] == ch { i++ } } else { res = append(res, str[i]) } } return string(res) }

178

Kui palju inimesi osales kõige suuremal projektis, millel oled töötanud? Vähem kui kümme, kümned, sajad?

178

Leidke süntaksiveadid parandatud koodis

177

Kuidas lahendada paralleelsete päringute piirangu probleem jaotatud süsteemis, kus on mitu instantsi, kui kasutaja peab ootama, mitte saama vea?

177

func countSubs(s string) int { result := 0 left := 0 hm := make(map[rune]int) for right := 0; right < len(s); right++ { hm[s[right]]++ for hm[s[right]] > 1 { hm[s[left]]-- if hm[s[left]] == 0 { delete(hm, s[left]) } left++ } result += (right - left + 1) } return result }

176

Miks Message Service sõnumid lähevad otse gRPC kaudu, mitte Kafka kaudu?

176

Rakenda BulkCreateUsers meetodit vastavalt proto-failile: loo projekti struktuur, äriloogika, hoidla ja SQL-päringud SOLID põhimõtete järgimisega

175

""" Kinodes asuvad kohad ühel real. Uus vaataja valib koha, soovides istuda võimalikult kaugel teistest vaatajatest real. Teisisõnu, selle koha, kuhu ta istub, ja lähima vaataja vaheline kaugus peaks olema maksimaalne. Garanteeritakse, et real on alati vabad kohad ja et juba istub vähemalt üks vaataja. Kirjutage funktsioon, mis, võttes arvesse antud kohtade rida (nullide ja ühtede massiiv), tagastab kauguse (vahede arv istmete vahel) valitud kohast lähima vaatajani. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 [0, 0, 0, 1] -> 3 [1, 0, 0, 0] -> 3 place = ((right - left) / 2) """ func maxPlaces(arr []int) int { }

174
/11