Celem jest wprowadzenie protokołu warstwy transportowej i aplikacji o lepszych opóźnieniach i przepustowości sieci . Obecnie aplikacja korzysta z REST z HTTP / 1.1 i doświadczamy dużego opóźnienia. Muszę rozwiązać ten problem z opóźnieniami i jestem otwarty na korzystanie z gRPC (HTTP / 2) lub REST / HTTP2 .
HTTP / 2:
- Multipleksowane
- Pojedyncze połączenie TCP
- Binarny zamiast tekstowy
- Kompresja nagłówka
- Serwer Push
Mam świadomość wszystkich powyższych zalet. Pytanie nr 1: Jeśli używam REST z HTTP / 2 , jestem pewien, że uzyskam znaczną poprawę wydajności w porównaniu do REST z HTTP / 1.1 , ale jak to się ma do gRPC (HTTP / 2) ?
Zdaję sobie również sprawę, że gRPC używa bufora proto, który jest najlepszą techniką serializacji binarnej do transmisji danych strukturalnych w sieci. Bufor Proto pomaga również w opracowaniu podejścia agnostycznego językowego. Zgadzam się z tym i mogę zaimplementować tę samą funkcję w REST za pomocą GraphQL. Ale moje obawy dotyczą serializacji: Pytanie nr 2: Kiedy HTTP / 2 implementuje tę funkcję binarną , czy użycie bufora proto daje dodatkową przewagę nad HTTP / 2?
Pytanie nr 3: Pod względem przesyłania strumieniowego, dwukierunkowych przypadków użycia , jak wypada porównanie gRPC (HTTP / 2) z (REST i HTTP / 2)?
W Internecie jest tak wiele blogów / filmów , które porównują gRPC (HTTP / 2) z (REST i HTTP / 1.1) w ten sposób . Jak wspomniano wcześniej, chciałbym poznać różnice, korzyści płynące z porównania GRPC (HTTP / 2) i (REST z HTTP / 2).