
gRPC
Protocol Buffers, servizi gRPC, streaming, interceptor, gestione degli errori, metadata
1Che cos'è gRPC?
Che cos'è gRPC?
Risposta
gRPC è un framework RPC (Remote Procedure Call) open-source sviluppato da Google che usa HTTP/2 come protocollo di trasporto e Protocol Buffers come formato di serializzazione predefinito. A differenza di REST che usa JSON e HTTP/1.1, gRPC offre prestazioni migliori grazie al formato binario di Protocol Buffers e alle funzionalità avanzate di HTTP/2 (multiplexing, compressione degli header, server push). gRPC è ampiamente usato per la comunicazione tra microservizi perché supporta nativamente lo streaming bidirezionale, la generazione di codice client/server e l'uso di tipi fortemente tipizzati.
2Qual è il ruolo principale di Protocol Buffers in gRPC?
Qual è il ruolo principale di Protocol Buffers in gRPC?
Risposta
Protocol Buffers (protobuf) è il linguaggio di definizione dell'interfaccia (IDL) e il formato di serializzazione binaria usato di default in gRPC. Permette di definire la struttura dei messaggi e dei servizi nei file .proto, che vengono poi compilati per generare automaticamente codice client e server in linguaggi diversi. Il formato binario di protobuf è da 3 a 10 volte più compatto di JSON e offre prestazioni di serializzazione/deserializzazione nettamente superiori (fino a 20 volte più veloci). Questo rende gRPC particolarmente adatto alle comunicazioni ad alta frequenza tra microservizi.
3Qual è la differenza tra una chiamata gRPC Unary e una chiamata Server Streaming?
Qual è la differenza tra una chiamata gRPC Unary e una chiamata Server Streaming?
Risposta
Una chiamata Unary è il tipo di chiamata gRPC più semplice: il client invia una singola richiesta e riceve una singola risposta, simile a una classica richiesta HTTP REST. Una chiamata Server Streaming consente al client di inviare una singola richiesta ma di ricevere un flusso (stream) di più risposte dal server. Ad esempio, un'API di notifiche può usare Server Streaming per inviare più aggiornamenti al client senza che questo debba fare polling. Questo riduce la latenza e il carico di rete rispetto a chiamate Unary ripetute.
Quale package Go viene usato per creare un server gRPC?
Come definire un servizio gRPC in un file .proto?
+19 domande da colloquio
Altri argomenti di colloquio Go
Fondamenti di Go
Strutture dati in Go
Interfacce in Go
Gestione degli errori
Goroutine di base
Channels
Go Modules
Server HTTP
Client HTTP
Codifica JSON
Database/SQL
Pacchetto context
Testing
Pattern di concorrenza
Primitive di sincronizzazione
Framework web Go
Progettazione di API REST
Reflection
Gestione della memoria
Ottimizzazione delle prestazioni
Generics
Go Design Patterns
Microservices
Sicurezza e autenticazione
Docker & Containerization
Kubernetes Basics
Go Avanzato
Sviluppo CLI
Padroneggia Go per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis