
gRPC
Protocol Buffers, usługi gRPC, streaming, interceptory, obsługa błędów, metadata
1Czym jest gRPC?
Czym jest gRPC?
Odpowiedź
gRPC to otwartoźródłowy framework RPC (Remote Procedure Call) opracowany przez Google, który używa HTTP/2 jako protokołu transportowego oraz Protocol Buffers jako domyślnego formatu serializacji. W przeciwieństwie do REST, który używa JSON i HTTP/1.1, gRPC oferuje lepszą wydajność dzięki binarnemu formatowi Protocol Buffers i zaawansowanym funkcjom HTTP/2 (multiplexing, kompresja nagłówków, server push). gRPC jest szeroko stosowany do komunikacji między mikroserwisami, ponieważ natywnie obsługuje dwukierunkowy streaming, generowanie kodu klienta/serwera oraz silne typowanie.
2Jaka jest główna rola Protocol Buffers w gRPC?
Jaka jest główna rola Protocol Buffers w gRPC?
Odpowiedź
Protocol Buffers (protobuf) to język definicji interfejsu (IDL) oraz binarny format serializacji używany domyślnie w gRPC. Pozwala definiować strukturę wiadomości i usług w plikach .proto, które są następnie kompilowane w celu automatycznego wygenerowania kodu klienta i serwera w różnych językach. Binarny format protobuf jest od 3 do 10 razy bardziej zwarty niż JSON i oferuje znacznie lepszą wydajność serializacji/deserializacji (do 20 razy szybszą). To sprawia, że gRPC szczególnie nadaje się do komunikacji o wysokiej częstotliwości między mikroserwisami.
3Jaka jest różnica między wywołaniem gRPC Unary a wywołaniem Server Streaming?
Jaka jest różnica między wywołaniem gRPC Unary a wywołaniem Server Streaming?
Odpowiedź
Wywołanie Unary to najprostszy typ wywołania gRPC: klient wysyła jedno żądanie i otrzymuje jedną odpowiedź, podobnie jak w klasycznym żądaniu HTTP REST. Wywołanie Server Streaming pozwala klientowi wysłać jedno żądanie, ale otrzymać strumień (stream) wielu odpowiedzi z serwera. Na przykład API powiadomień może użyć Server Streaming, aby wysyłać klientowi wiele aktualizacji bez konieczności pollingu. Zmniejsza to opóźnienia i obciążenie sieci w porównaniu z powtarzanymi wywołaniami Unary.
Który pakiet Go jest używany do tworzenia serwera gRPC?
Jak zdefiniować usługę gRPC w pliku .proto?
+19 pytań z rozmów
Inne tematy rekrutacyjne Go
Podstawy Go
Struktury danych w Go
Interfejsy w Go
Obsługa błędów
Podstawy goroutines
Channels
Go Modules
Serwer HTTP
Klient HTTP
Kodowanie JSON
Database/SQL
Pakiet context
Testing
Wzorce współbieżności
Prymitywy synchronizacji
Frameworki webowe Go
Projektowanie API REST
Reflection
Zarządzanie pamięcią
Optymalizacja wydajności
Generics
Go Design Patterns
Microservices
Bezpieczeństwo i uwierzytelnianie
Docker & Containerization
Kubernetes Basics
Zaawansowany Go
Tworzenie CLI
Opanuj Go na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo