Golang
Ispričaj mi o uzorku Semaphore.
Da li ste vi sami pratili monitoring ili imate poseban tim?
Zašto je pristup Go-a ka višestrukom procesiranju bolji od drugih jezika?
Ispričajte o svom iskustvu rada sa sistemima visokog opterećenja. Da li ste morali rešavati zadatke vezane za raspodelu i balansiranje saobraćaja?
Ako operacija traje 10-12 minuta, a aktivno je zapisivanje i podaci se menjaju, da li su postojali neki neželjeni efekti?
Koja je složenost algoritma po vremenu i memoriji?
Реците о нивоима изолације трансакција: Read Uncommitted, Read Committed, Repeatable Read, Serializable.
Da li ste ikada morali da se bavite arhitektonskim zadacima? Kako su donesena arhitektonska rešenja?
[ime] je pitao: ispričaj mi o primitivima za sinhronizaciju u GoLang.
Sada želimo da odemo na HeadHunter i tražimo kandidate po filtrima — kako to arhitekturalno osmisliti?
Odakle su dolazili podaci? Slali su ih logistici ili kako?
Šta se može uraditi da se izbegne evakuacija mape u highload-servisu?
Šta je Load Average, kako ga proveriti i na šta obratiti pažnju?
Da li se podaci kontejnera brišu nakon njegovog zaustavljanja?
func (c *Client) Send(ctx context.Context, messages []Message, maxWorkers int) error { sem := make(chan struct{}, maxWorkers) var wg sync.WaitGroup var resultErr error var once sync.Once for _, msg := range messages { wg.Add(1) go func(msg Message) { defer wg.Done() sem <- struct{}{} defer func() { <-sem }() body, err := json.Marshal(msg) if err != nil { once.Do(func() { resultErr = err; cancel() }) return } req, _ := http.NewRequestWithContext( ctx, http.MethodPost, c.url, bytes.NewReader(body), ) req.Header.Set("Content-Type", "application/json") resp, err := c.httpClient.Do(req) if err != nil { once.Do(func() { resultErr = err; cancel()}) return } defer resp.Body.Close() if resp.StatusCode >= 500 { once.Do(func() { resultErr = fmt.Errorf("server error") cancel()}) return } c.sentCount.Add(1) time.Sleep(time.Second) }(msg) } wg.Wait() }
Za koje zadatke ste koristili goroutines i kanale?
Kako ste uticali na promenu procesa sa analizom?
Kako je tehnički opšte strukturirana HR platforma?
Kako ste rešavali situaciju kada su računi tokom transfera završavali na različitim shardovima?
Kako pretvoriti broj u binarni sistem?