Golang
Ești în Moscova?
De ce a fost adăugat serviciul de verificare antifraudă în zona de responsabilitate a candidatului?
Câte microservicii ai în munca ta actuală și cu care lucrezi direct?
Ce părere ai despre problema cu soluția în memorie? Ce se întâmplă dacă repornești serviciul?
Când trebuie eliminate indexurile? Ce este denormalizarea?
La ce sunt folosiți, de fapt, coșurile în tabelul de hash/map? Care este rolul lor funcțional?
Înseamnă că totul se va încheia totuși după acest timeout? Adică, poate ceva să nu funcționeze încă — care este problema aici?
Descrie procesul de încărcare al serverului Linux de la pornire până la lansarea terminalului
Încărcare maximă: 25k citiri / 5k scrieri pe secundă Volumul de date noi: 10 TB pe an Paralelism maxim: 120k solicitări simultane Creșterea anuală a utilizatorilor: 30% Întârzierea p99 țintă: <150 ms pentru citiri, <400 ms pentru scrieri Disponibilitatea țintă: 99,95% Sarcina dvs. este să dezvoltați o soluție arhitecturală care să elimine problemele actuale, să asigure coerența și toleranța la defecte, precum și să implementeze mecanisme de urmărire pentru monitorizarea completă a ciclului de viață al comenzii. Descrieți mecanismul de gestionare a defectelor, planul de migrare de la arhitectura actuală și explicați cum soluția propusă va îmbunătăți fiabilitatea și transparența sistemului.
Ce sunt canalele în Go și care sunt tipurile lor?
Există o modalitate de a gestiona și ajusta colectorul de gunoi stop-the-world în Go?
// tabelul de bunuri: // ID | cnt_view // ----------- // 1 | 100 // doi utilizatori au început să vizioneze produsul cu id = 1 în același timp // și în baza noastră de date au fost lansate 2 tranzacții paralele // care va fi rezultatul? 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() }
Ați avut vreodată de-a face cu sarcini arhitecturale? Cum au fost luate deciziile arhitecturale?
De ce trebuie să întrerupem contextul în structură? De ce să încheiem workerii? Dorim să întrerupem metoda Stop.
Und merg goroutine-urile la crearea lor: în coada locală sau globală a planificatorului Go?
Cum ați realizat scalarea consumatorilor Kafka? În funcție de ce criterii?
Cum influențează timeout-urile reducerea încărcăturii asupra analizei?
Ce proiect a fost în companie? Ce microserviciu era acolo?
Indecși în PostgreSQL: ce sunt, ce tipuri cunoști, de ce B-tree este mai bun decât Hash?
Este posibil să scrii într-un map din mai multe goroutines în același timp? Ce se va întâmpla?