Go

gRPC

Protocol Buffers, servizi gRPC, streaming, interceptor, gestione degli errori, metadata

22 domande da colloquio·
Mid-Level
1

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.

2

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.

3

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.

4

Quale package Go viene usato per creare un server gRPC?

5

Come definire un servizio gRPC in un file .proto?

+19 domande da colloquio

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