Sobes.tech

Шумо дар бораи барномаи мултитрекии Яндекс чӣ медонед?

187

Оё таҷрибаи дастгирӣ ё таҳияи системаҳои тақсимшуда доред?

185

Оё шумо облакаҳои ҷамъиятиро истифода бурдаед? Агар ҳа, бо кадом таъминкунандагон ва хидматҳо?

185

Чӣ гуна кор мекунед бо меъморӣ — оё дар гурӯҳ меъмор ҳаст, платформа, кумита?

184

Чӣ қадар зуд кор мекунад ҷустуҷӯи хаттӣ барои ҳама бекендҳо дар RPS баланд (масалан, 30 000 RPS ва 10 бекенд)?

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 в slice 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 съдържат адресите на всички балансирани инстанции func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImplF, len(addrs)) for _, addr := range addrs { implF := BackendImplF{ Backend: NewBackend(addr), } backends = append(backends, &implF) } }

183

Чӣ тавр зуд санҷидани, ки оё дар тиреза ҳама аломатҳо ҳастанд (мувофиқати ду харита)?

182

Ҳаҷми маълумоти калонтарин дар базаҳои додаҳо чӣ буд?

180

Дар бораи ҷойи кории аввалини худ аз соли 2019 то 2021 бештар нақл кунед.

180

Чӣ қадар фаъол аст ҷустуҷӯҳо? Шояд аллакай пешниҳодҳо ҳастанд?

180

Хизмат дар чанд хост кор мекард ва чанд нусха оғоз мешуд?

180

/** :-))) :-(( "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) }

180

Оё роҳҳои содда ва зудтар барои баробар кардани бор дар ҷойи интихоби бекенди камтар боршуда вуҷуд дорад?

179

Барои API Gateway як Load Balancer, барои WebSocket дигар — дар маҷмӯъ ду LB дар системаи?

179

Чӣ қадар одам дар бузургтарин лоиҳае, ки шумо кор кардаед, иштирок карданд? Камтар аз даҳ, даҳҳо, садҳо?

178

Чӣ гуна масъалаи маҳдуд кардани дархостҳои параллелиро дар системаи тақсимшуда бо чандин нусха ҳал кардан мумкин аст, агар корбар бояд интизор шавад, на хато бигирад?

177

Хатогиҳои синтаксисро дар коди ислоҳшуда ёбед

177

Чаро паёмҳои аз Message Service мустақиман тавассути gRPC мераванд, на тавассути Kafka?

176

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

Реализ кунед усули BulkCreateUsers дар асоси файли proto: сохтори лоиҳаро, логикаи бизнес, репозиторӣ ва дархостҳои SQL-ро бо риояи принсипҳои SOLID созед

175
/11