Hogyan határoztad meg, hogy ideje valamit változtatni? Milyen mérőszámokra alapozottál?
Golang
Mesélj egy PostgreSQL-alapú mikroszervizről, amely médiafájlokat tárol. Mit tároltak PostgreSQL-ben és mit S3-ban?
Hogyan biztosították a Redis cache konzisztenciáját? Hogyan értették meg, hogy frissíteni kell a cache-t?
Mi történik, ha bejelentkezik egy zárt csatornára, olvas egy zárt csatornából, ír/olvas egy nil csatornából?
Mi a különbség a slice-ok és a tömbök között a Go-ban?
Hogyan vannak beállítva a fogyasztói csoportok Kafka-ban? Hány témát, honnan olvasol?
Implementálj egy Worker Pool-t a logok feldolgozására: olvasd be a logokat a csatornából, dolgozd fel őket párhuzamosan, számold meg a logok számát szolgáltatásonként, és térj vissza egy map[serviceName]count értékkel.
Mi az a csatorna a Go-ban? Mire használják a csatornákat?
Szükséges írni módszereket cikkek létrehozására, frissítésére és törlésére? Pontosan mit kell tennie az Ön szolgáltatásának?
func(d *Data)GetViews(kulcs int, chechDay time.Time) (int, int, err) { d.mu.Lock() defer d.mu.Unlock() infoStr, ok := d.st[kulcs] if !ok { return 0, fmt.Errorf("cikk nem található") } return (infoStr.day, infoStr.count, nil) }
Mi történik az outbox sémával, ha a Kafka nem lesz elérhető? Mekkora méretre nőhet az outbox sor?
Mire használják a kontextust? Hogyan használtad a gyakorlatban?
Mesélj az adatbázis lekérdezések optimalizálási feladatairól, indexek írásáról, partícionálásról.
Hogyan működtek együtt a szolgáltatások?
Miért hagytad el a RocketDev-et?
Mi az observability? Melyik három pillérét ismered az observability-nek?
Mi történik, ha az egyik szolgáltatás nem elérhető az adatszolgáltatás során (például a teljes név/adatok szolgáltatása)? Megáll az egész Kafka?
Hogyan csatlakoztassuk a profiler-t Go-ban? Hogyan készítsünk profilokat?
Lehet-e egyszerre több goroutine-ból írni egy map-be? Mi fog történni?
Meséljen a adatbázis lekérdezések optimalizálásáról: hogyan találták meg a problémás lekérdezéseket, és mit tettek?