gRPC
Autor Google
Pierwsze wydanie 0.5.0 – 26 lutego 2015; ponad 9 lat temu
Aktualna wersja stabilna 1.59.2 – 31 października 2023; ponad 6 miesięcy temu
Język programowania Android Java, C#, C++, Dart, Go, Java, Kotlin/JVM, Node.js, Objective-C, PHP, Python, Ruby
Platforma sprzętowa wieloplatformowy
Rodzaj protokół RPC
Licencja Apache License 2.0
Strona internetowa

gRPC (gRPC Remote Procedure Calls)wieloplatformowy, otwartoźródłowy oraz wysokowydajny framework protokołu zdalnego wywołania procedury. Został napisany przez Google będąc wersją rozwojową ich wewnętrznego protokołu RPC o nazwie Stubby wykorzystywanego do komunikacji pomiędzy licznymi mikroserwisami działającymi w centrach danych od 2001 roku. W marcu 2015 roku zapadła decyzja o zastąpieniu Stubby nowym protokołem, który miał być tworzony jako otwarte oprogramowanie. Efektem tych prac było wydanie w 2016 roku pierwszej wersji gRPC.

Charakterystyka

gRPC wykorzystuje HTTP/2 jako protokół komunikacyjny oraz Protocol Buffers jako język opisu interfejsu, definiujący również format serializacji i kodowanie danych. W celu uwierzytelniania stosowany jest protokół kryptograficzny TLS. Obsługiwane są dwa typy list uwierzytelniających: kanałowa (ang. channel) oraz wywoławcza (ang. call). Do autoryzacji dostarczane są dwa typy przechwytywaczy: Service Interceptor oraz Client Interceptor.

Ze względu na silne oparcie się o HTTP/2 nie jest możliwa implementacja klienta gRPC w przeglądarce internetowej, w tym celu wymagane jest użycie odpowiedniego proxy.

Wykorzystanie

gRPC wykorzystuje się głównie do komunikacji pomiędzy serwisami w architekturze mikroserwisów oraz komunikacji urządzeń mobilnych z serwisami backendowymi. Do swoich rozwiązań produkcyjnych został on zaadaptowany przez między innymi Uber, Block, Inc., Netflix, IBM, Docker, Arista Networks, Cisco Systems, Spotify, Dropbox oraz własnego autora Google.

Otwartoźródłowy project u-bmc wykorzystuje gRPC jako zastępstwo dla Intelligent Platform Management Interface.

Przypisy

  1. Releases - grpc/grpc. GitHub. [dostęp 2023-11-13].
  2. FAQ. gRPC. [dostęp 2023-11-13].
  3. Varun Talwar: gRPC: a true internet-scale RPC framework is now 1.0 and ready for production deployments. Google Cloud, 2016-08-24. [dostęp 2023-11-13].
  4. Authentication. gRPC. [dostęp 2023-11-13].
  5. gRPC interceptors with Java. The Code Data, 2023-02-27. [dostęp 2023-11-13].
  6. Johan Brandhorst: The state of gRPC in the browser. gRPC Blog, 2019-01-08. [dostęp 2023-11-13].
  7. About. gRPC. [dostęp 2023-11-13].
  8. The Architecture of Uber’s API gateway. Uber Blog, 2021-05-19. [dostęp 2023-11-13].
  9. Getting Started With gRPC in Cisco IOS XR. CoscoDevNet GitHub. [dostęp 2023-11-13].
  10. Adopting gRPC at Spotify. JFokus, 2019-02-06. [dostęp 2023-11-13].
  11. Alexey Ivanov, Oleg Guba: How we migrated Dropbox from Nginx to Envoy. Dropbox.Tech, 2020-06-30. [dostęp 2023-11-13].
  12. u-bmc. GitHub. [dostęp 2023-11-13].

Linki zewnętrzne

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.