Golang
Ste v Moskve?
Prečo bola služba antifraudných kontrol pridaná do oblasti zodpovednosti kandidáta?
Koľko mikroservisov máš vo svojej súčasnej práci a s ktorými priamo pracuješ?
Čo si myslíš, aký je problém s riešením v pamäti? Čo sa stane, ak reštartuješ službu?
Kedy je potrebné odstrániť indexy? Čo je denormalizácia?
Na čo sú vôbec potrebné vedrá v hash tabuľke/mape? Akú majú funkčnú úlohu?
Znamená to, že všetko sa aj tak ukončí po tomto timeoute? Inými slovami, môže sa stať, že niečo ešte nefunguje — aký je tu problém?
Popíšte proces načítania Linux servera od štartu po spustenie terminálu
Maximálne zaťaženie: 25k čítaní / 5k zápisov za sekundu Objem nových dát: 10 TB ročne Maximálna paralelnosť: 120k súčasných požiadaviek Ročný rast používateľov: 30% Cieľové p99 oneskorenie: <150 ms pre čítania, <400 ms pre zápisy Cieľová dostupnosť: 99,95% Vašou úlohou je vyvinúť architektonické riešenie, ktoré odstráni súčasné problémy, zabezpečí konzistenciu a odolnosť voči chybám, a tiež implementuje mechanizmy sledovania pre úplnú kontrolu životného cyklu objednávky. Opíšte mechanizmus správy chýb, plán migrácie zo súčasnej architektúry, a vysvetlite, ako navrhované riešenie zlepší spoľahlivosť a transparentnosť systému.
Čo sú to kanály v Go a aké majú druhy?
Existuje spôsob, ako spravovať a doladiť stop-the-world garbage collector v Go?
// tabuľka tovarov: // ID | cnt_view // ----------- // 1 | 100 // dvaja používatelia začali súčasne sledovať tovar s id = 1 // a v našej databáze boli spustené 2 paralelné transakcie // aký bude výsledok? postgresql func IncrementView(ctx context.Context, db *sql.DB, id int64) error { tx, err := db.BeginTx(ctx, nil) if err != nil { return err } defer tx.Rollback() var cnt int err = tx.QueryRowContext(ctx, "SELECT cnt_view FROM goods WHERE id = $1", id, ).Scan(&cnt) if err != nil { return err } cnt++ _, err = tx.ExecContext(ctx, "UPDATE goods SET cnt_view = $1 WHERE id = $2", cnt, id, ) if err != nil { return err } return tx.Commit() }
Museli ste sa niekedy zaoberať architektonickými úlohami? Ako sa prijímali architektonické rozhodnutia?
Prečo musíme prerušiť kontext v štruktúre? Prečo ukončiť pracovníkov? Chceme prerušiť metódu Stop.
Kam smerujú gorutiny pri ich vytváraní – do lokálnej alebo globálnej fronty plánovača Go?
Ako ste vykonali škálovanie Kafka konzumentov? Podľa akých kritérií?
Ako ovplyvňujú časové limity zníženie záťaže na analytiku?
Aký projekt bol v spoločnosti? Aký mikroservis tam bol?
Indexy v PostgreSQL: čo sú, aké druhy poznáš, prečo je B-tree lepší ako Hash?
Je možné písať do jednej mapy z rôznych gorútín súčasne? Čo sa stane?