Próbuję zrozumieć protobuf i gRPC oraz jak mogę używać obu. Czy możesz mi pomóc zrozumieć, co następuje:
- Biorąc pod uwagę model OSI, gdzie jest na przykład Protobuf w warstwie 4?
- Zastanawiając się nad transferem wiadomości, jaki jest „przepływ”, co robi gRPC, czego brakuje protobufowi?
- Jeśli nadawca używa protokołu protobuf, czy serwer może używać gRPC, czy też gRPC dodaje coś, co może dostarczyć tylko klient gRPC?
- Jeśli gRPC może umożliwić synchroniczną i asynchroniczną komunikację, Protobuf służy tylko do kierowania i dlatego nie ma nic wspólnego ze stanem - prawda czy fałsz?
- Czy mogę używać gRPC w komunikującej się aplikacji frontendowej zamiast REST lub GraphQL?
Wiem już - lub zakładam, że tak - że:
- Protokół binarny do wymiany danych
- Zaprojektowany przez Google
- Używa wygenerowanego opisu „Struct” na kliencie i serwerze do usuwania / - organizowania wiadomości
- Używa protobuf (v3)
- Ponownie od Google
- Struktura wywołań RPC
- Wykorzystuje również protokół HTTP / 2
- Możliwa komunikacja synchroniczna i asynchroniczna
Ponownie zakładam, że to łatwe pytanie dla kogoś, kto już korzysta z tej technologii. Nadal chciałbym ci podziękować za cierpliwość i pomoc. Byłbym również bardzo wdzięczny za wszelkie sieciowe zagłębienia się w technologie.
HTTP/2
), ale zdecydowanie wykonuje zadania tych warstw.W rzeczywistości gRPC i Protobuf to dwie zupełnie różne rzeczy. Pozwól mi uprościć:
gRPC ma dwie strony: po stronie serwera i po stronie klienta, która może łączyć się z serwerem. Serwer udostępnia RPC (tj. Funkcje, które można wywołać zdalnie). I masz tam mnóstwo opcji: możesz zabezpieczyć komunikację (używając TLS), dodać warstwę uwierzytelniającą (używając przechwytywaczy), ...
Możesz użyć protobuf wewnątrz dowolnego programu, który nie musi być klientem / serwerem. Jeśli potrzebujesz wymieniać dane i chcesz, aby były mocno wpisane, protobuf to fajna opcja (szybka i niezawodna).
Mając to na uwadze, możesz połączyć oba, aby zbudować ładny system klient / serwer: gRPC będzie kodem klienta / serwera i będzie protokołem danych.
PS: Napisałem ten artykuł, aby pokazać, jak krok po kroku zbudować klienta / serwer z gRPC i protobuf przy użyciu Go.
źródło
grpc to framework zbudowany przez Google i jest używany w projektach produkcyjnych z samego Google, a #HyperledgerFabric jest zbudowany z grpc istnieje wiele aplikacji open source zbudowanych z grpc
protobuff to reprezentacja danych taka jak json to również jest przez Google w rzeczywistości mają tysiące plików proto generowanych w ich projektach produkcyjnych
grpc
protobuff
źródło