
gRPC
Protocol Buffers, gRPC-Services, Streaming, Interceptors, Fehlerbehandlung, Metadaten
1Was ist gRPC?
Was ist gRPC?
Antwort
gRPC ist ein von Google entwickeltes Open-Source-RPC-Framework (Remote Procedure Call), das HTTP/2 als Transportprotokoll und Protocol Buffers als Standard-Serialisierungsformat verwendet. Anders als REST, das JSON und HTTP/1.1 nutzt, bietet gRPC dank des Binärformats von Protocol Buffers und der erweiterten HTTP/2-Funktionen (Multiplexing, Header-Komprimierung, Server Push) eine bessere Performance. gRPC wird häufig für die Kommunikation zwischen Microservices verwendet, da es bidirektionales Streaming, Client/Server-Codegenerierung und stark typisierte Schnittstellen nativ unterstützt.
2Was ist die Hauptrolle von Protocol Buffers in gRPC?
Was ist die Hauptrolle von Protocol Buffers in gRPC?
Antwort
Protocol Buffers (protobuf) ist die Interface Definition Language (IDL) und das binäre Serialisierungsformat, das standardmäßig in gRPC verwendet wird. Es ermöglicht das Definieren von Nachrichtenstrukturen und Services in .proto-Dateien, die anschließend kompiliert werden, um automatisch Client- und Servercode in verschiedenen Sprachen zu generieren. Das Binärformat von protobuf ist 3- bis 10-mal kompakter als JSON und bietet eine deutlich höhere Serialisierungs-/Deserialisierungsleistung (bis zu 20-mal schneller). Das macht gRPC besonders geeignet für hochfrequente Kommunikation zwischen Microservices.
3Was ist der Unterschied zwischen einem Unary-gRPC-Aufruf und einem Server-Streaming-Aufruf?
Was ist der Unterschied zwischen einem Unary-gRPC-Aufruf und einem Server-Streaming-Aufruf?
Antwort
Ein Unary-Aufruf ist der einfachste gRPC-Aufruftyp: Der Client sendet eine einzelne Anfrage und erhält eine einzelne Antwort, ähnlich einer klassischen HTTP-REST-Anfrage. Ein Server-Streaming-Aufruf erlaubt es dem Client, eine einzelne Anfrage zu senden, aber einen Stream mehrerer Antworten vom Server zu empfangen. Beispielsweise kann eine Benachrichtigungs-API Server Streaming nutzen, um dem Client mehrere Updates zu senden, ohne dass dieser pollen muss. Das reduziert Latenz und Netzwerklast im Vergleich zu wiederholten Unary-Aufrufen.
Welches Go-Paket wird verwendet, um einen gRPC-Server zu erstellen?
Wie definiert man einen gRPC-Service in einer .proto-Datei?
+19 Interview-Fragen
Weitere Go-Interviewthemen
Go-Grundlagen
Go-Datenstrukturen
Go-Interfaces
Fehlerbehandlung
Goroutines-Grundlagen
Channels
Go Modules
HTTP-Server
HTTP-Client
JSON-Kodierung
Database/SQL
context-Paket
Testing
Concurrency-Patterns
Synchronisationsprimitive
Go-Web-Frameworks
REST-API-Design
Reflection
Speicherverwaltung
Performance-Optimierung
Generics
Go Design Patterns
Microservices
Sicherheit und Authentifizierung
Docker & Containerization
Kubernetes Basics
Fortgeschrittenes Go
CLI-Entwicklung
Meistere Go für dein nächstes Interview
Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.
Kostenlos starten