Golang
Sei a Mosca?
Perché il servizio di verifica antifrode è stato aggiunto all'area di responsabilità del candidato?
Quanti microservizi ci sono nel tuo attuale lavoro e con quali lavori direttamente?
Cosa ne pensi, qual è il problema con la soluzione in memoria? Cosa succederà se riavvii il servizio?
Quando è necessario rimuovere gli indici? Cos'è la denormalizzazione?
A cosa servono davvero i bucket in una tabella hash/mappa? Qual è il loro ruolo funzionale?
Significa che tutto finirà comunque dopo questo timeout? Cioè, qualcosa potrebbe comunque non funzionare — qual è il problema qui?
Descrivi il processo di caricamento del server Linux dall'avvio fino all'avvio del terminale
Carico massimo: 25k letture / 5k scritture al secondo Volume di nuovi dati: 10 TB all'anno Parallellismo massimo: 120k richieste simultanee Crescita annuale degli utenti: 30% Latenza p99 obiettivo: <150 ms per le letture, <400 ms per le scritture Disponibilità obiettivo: 99,95% Il tuo compito è sviluppare una soluzione architettonica che elimini i problemi attuali, garantisca coerenza e tolleranza ai guasti, e implementi anche meccanismi di tracciamento per un monitoraggio completo del ciclo di vita dell'ordine. Descrivi il meccanismo di gestione dei guasti, il piano di migrazione dall'architettura attuale, e spiega come la soluzione proposta migliorerà l'affidabilità e la trasparenza del sistema.
Cosa sono i canali in Go e quali sono i loro tipi?
C'è un modo per gestire e regolare il garbage collector stop-the-world in Go?
// tabella prodotti: // ID | cnt_view // ----------- // 1 | 100 // due utenti hanno iniziato a guardare il prodotto con id = 1 contemporaneamente // e nel nostro database sono state avviate 2 transazioni in parallelo // quale sarà il risultato? 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() }
Hai mai dovuto affrontare compiti architettonici? Come sono state prese le decisioni architettoniche?
Perché dobbiamo interrompere il contesto nella struttura? Perché terminare i worker? Vogliamo interrompere il metodo Stop.
Perché stai cercando un nuovo lavoro ora? Cosa non ti piace del tuo attuale lavoro?
Dove vanno le goroutine alla creazione: nella coda locale o globale del pianificatore Go?
Come hai effettuato la scalabilità dei consumer Kafka? In base a quali criteri?
In che modo i timeout influenzano la riduzione del carico sull'analitica?
Quale era il progetto nell'azienda? Quale microservizio c'era?
Indici in PostgreSQL: cosa sono, quali tipi conosci, perché il B-tree è migliore di Hash?