Se uno dei servizi che utilizzi restituisce un errore, cosa farai e come gestirai questa situazione se hai un canale?
Golang
Come è stato organizzato il soft hold dei saldi con verifica finale alla conferma della prenotazione?
La facciata accede a 10 servizi interni (100-300 ms ciascuno) più a un servizio globale in Cina (500 ms), il tempo totale di risposta è di circa 3,5 secondi. Come risolveresti questo problema per accelerare l'elaborazione?
Avevi un unico gateway di servizio in ingresso, con cui comunicavano tutti i partner (B2B)? In quante istanze era in funzione?
Hai domande per il collega?
Come fare a non andare mai al servizio che sicuramente fallirà o sarà inaccessibile?
Redis memorizzava i dati solo in memoria o c'era un fallback su disco? Cosa succede se Redis si blocca?
Hai paura del tracker del tempo? Perché?
Se hai un compito grande, ad esempio un file di 10 GB con impostazioni riga per riga, e devi elaborare ogni riga (ad esempio, mettere un punto alla fine), le goroutine aiuterebbero ad accelerare questo lavoro?
Quanti data center hai avuto: uno o più?
Quanti canali sarebbero necessari per organizzare questo meccanismo se si utilizzano canali per raccogliere i risultati dai servizi?
Nel linguaggio Go ci sono le goroutine, che sono thread leggeri. Puoi spiegare come capisci quando è necessario usare una goroutine e quando no?
Come veniva calcolato l'RPS — semplicemente sommiavi il carico di tutte le maniglie o come?
Come hai implementato l'atomicità della scrittura in Redis? Quale algoritmo hai usato (script Lua)?
Se fai una richiesta sincrona al database o a un servizio vicino, e la richiesta impiega 5 secondi, cosa succederà al thread del sistema operativo su cui è in esecuzione il servizio mentre la richiesta è in corso?
Come capire dove si trova il collo di bottiglia nell'elaborazione di un file — se l'elaborazione riga per riga sembra lenta, e le goroutine elaborano in ciclo?
Cosa trasmetteresti all'interno di questo canale (quale struttura dati)?
Il servizio distribuiva semplicemente i dati dalla cache, o eseguiva qualche altra logica?
Forse dovremmo iniziare a usare le goroutine per aumentare la velocità, ad esempio, dieci volte più veloce usando dieci goroutine?
Hai detto che hai un servizio che ascolta Kafka e aggiorna la cache in Redis, giusto?