Шумо дар бораи барномаи мултитрекии Яндекс чӣ медонед?
Golang
Оё таҷрибаи дастгирӣ ё таҳияи системаҳои тақсимшуда доред?
Оё шумо облакаҳои ҷамъиятиро истифода бурдаед? Агар ҳа, бо кадом таъминкунандагон ва хидматҳо?
Чӣ гуна кор мекунед бо меъморӣ — оё дар гурӯҳ меъмор ҳаст, платформа, кумита?
Чӣ қадар зуд кор мекунад ҷустуҷӯи хаттӣ барои ҳама бекендҳо дар RPS баланд (масалан, 30 000 RPS ва 10 бекенд)?
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) } }
Чӣ тавр зуд санҷидани, ки оё дар тиреза ҳама аломатҳо ҳастанд (мувофиқати ду харита)?
Ҳаҷми маълумоти калонтарин дар базаҳои додаҳо чӣ буд?
Дар бораи ҷойи кории аввалини худ аз соли 2019 то 2021 бештар нақл кунед.
Чӣ қадар фаъол аст ҷустуҷӯҳо? Шояд аллакай пешниҳодҳо ҳастанд?
Хизмат дар чанд хост кор мекард ва чанд нусха оғоз мешуд?
/** :-))) :-(( "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) }
Оё роҳҳои содда ва зудтар барои баробар кардани бор дар ҷойи интихоби бекенди камтар боршуда вуҷуд дорад?
Барои API Gateway як Load Balancer, барои WebSocket дигар — дар маҷмӯъ ду LB дар системаи?
Чӣ қадар одам дар бузургтарин лоиҳае, ки шумо кор кардаед, иштирок карданд? Камтар аз даҳ, даҳҳо, садҳо?
Чӣ гуна масъалаи маҳдуд кардани дархостҳои параллелиро дар системаи тақсимшуда бо чандин нусха ҳал кардан мумкин аст, агар корбар бояд интизор шавад, на хато бигирад?
Хатогиҳои синтаксисро дар коди ислоҳшуда ёбед
Чаро паёмҳои аз Message Service мустақиман тавассути gRPC мераванд, на тавассути Kafka?
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 }
Реализ кунед усули BulkCreateUsers дар асоси файли proto: сохтори лоиҳаро, логикаи бизнес, репозиторӣ ва дархостҳои SQL-ро бо риояи принсипҳои SOLID созед