GRPC
| Autor | |
|---|---|
| Pierwsze wydanie | 0.5.0 – 26 lutego 2015; około 11 lat temu |
| Aktualna wersja stabilna | 1.76.0 (20 października 2025) [±] |
| 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[1]) – 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[2].
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)[3]. Do autoryzacji dostarczane są dwa typy przechwytywaczy: Service Interceptor oraz Client Interceptor[4].
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[5].
Wykorzystanie
gRPC wykorzystuje się głównie do komunikacji pomiędzy serwisami w architekturze mikroserwisów oraz komunikacji urządzeń mobilnych z serwisami backendowymi[6]. Do swoich rozwiązań produkcyjnych został on zaadaptowany przez między innymi Uber[7], Block, Inc., Netflix, IBM, Docker, Arista Networks, Cisco Systems[8], Spotify[9], Dropbox[10] oraz własnego autora Google.
Otwartoźródłowy project u-bmc wykorzystuje gRPC jako zastępstwo dla Intelligent Platform Management Interface[11].
Przypisy
- ↑ FAQ. gRPC. [dostęp 2023-11-13].
- ↑ 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].
- ↑ Authentication. gRPC. [dostęp 2023-11-13].
- ↑ gRPC interceptors with Java. The Code Data, 2023-02-27. [dostęp 2023-11-13].
- ↑ Johan Brandhorst: The state of gRPC in the browser. gRPC Blog, 2019-01-08. [dostęp 2023-11-13].
- ↑ About. gRPC. [dostęp 2023-11-13].
- ↑ The Architecture of Uber’s API gateway. Uber Blog, 2021-05-19. [dostęp 2023-11-13].
- ↑ Getting Started With gRPC in Cisco IOS XR. CoscoDevNet GitHub. [dostęp 2023-11-13].
- ↑ Adopting gRPC at Spotify. JFokus, 2019-02-06. [dostęp 2023-11-13].
- ↑ Alexey Ivanov, Oleg Guba: How we migrated Dropbox from Nginx to Envoy. Dropbox.Tech, 2020-06-30. [dostęp 2023-11-13].
- ↑ u-bmc. GitHub. [dostęp 2023-11-13].
Linki zewnętrzne
- Główna strona projektu (ang.)
- Kod źródłowy na platformie GitHub (ang.)
- gRPC w Google Open Source (ang.)
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.