Sobes.tech

топ Response интерфейс {} tоп Backend интерфейс { Invoke(ctx: контекст, req: Request): Response, error } var _ Backend = &BackendImpl{} // addr белгилүү бир мисалдын IP:порт дареги func NewBackend(addr: string) *BackendImpl tоп Balancer түзүмү { // TODO backends []*BackendImpl index int mu sync.Mutex } var _ Backend = &Balancer{} func (b *Balancer) Invoke(ctx: контекст, req: Request) (Response, error) { эгер len(b.backends) == 0 { кайтаруу nil, fmt.Errorf("Backends саны слайста 0") } b.mu.Lock() index := b.index эгер b.index + 1 == len(b.backends) { b.index = 0 index = 0 } b.mu.Unlock() resp, err := b.backends[index].Invoke(ctx, req) кайтаруу resp, err } // addrs бардык балансировкаланган мисалдардын даректерин камтыйт func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImpl, len(addrs))

187

Яндексдин мультитрек программасы жөнүндө эмне билесиз?

187

API Gateway үчүн бир Load Balancer, WebSocket үчүн башка — жалпы эки LB системадабы?

185

Жарандык булуттарды колдондуңузбу? Эгер ооба болсо, кайсы камсыздоочулар жана кызматтар?

185

Архитектура менен кантип иштешесиз — командада архитектор, платформа, комитет барбы?

184

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("Байланыштардын саны слайста 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

Жогорку RPS (мисалы, 30 000 RPS жана 10 backend) учурда бардык backendдердин сызыктуу издөшу канчалык тез иштейт?

183

Терезеде бардык белгилер бар экенин кантип тез текшерсе болот (эки карта салыштыруу)?

182

Издөө канчалык активдүү? Мүмкүн, алгачкы сунуштар бардыр?

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

2019-2021-жылдар аралыгында биринчи иш ордуңуз жөнүндө көбүрөөк айтып бериңиз.

180

Кызмат канча хостто иштеди жана канча инстанция ишке киргизилди?

180

Маалыматтар базаларында иштегенде эң чоң маалымат көлөмү кандай болду?

180

Жүктү аз эң аз жүктөлгөн backendти тандап алуудан башка, жөнөкөй жана тезирек жүктү теңдештирүү жолдору барбы?

179

Неге Message Service билдирүүлөрү түздөн-түз gRPC аркылуу өтүп жатат, Kafka аркылуу эмес?

178

Көп инстанциялар менен бөлүштүрүлгөн системада параллелдүү суроолор чектөөнүн маселесин кантип чечсе болот, эгер колдонуучу катаны албастан күтүшү керек болсо?

177

Түзөтүлгөн коддо синтаксистик каталарды табыңыз

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

Proto-файлга негизделген BulkCreateUsers ыкмасын ишке ашырыңыз: долбоордун түзүмүн, бизнес логикасын, репозиторий жана SQL суроолорду SOLID принциптерин сактайт

175
/11