| gRPC | |
|---|---|
| 開発者 | グーグル |
| 初回リリース | 2016年8月 (2016-08) |
| 安定版リリース | 1.72.1 [ 1 ] / 2025年6月2日 (2025-06-02) |
| リポジトリ | |
| 書かれた | Android Java、C#、C++、Dart、Go、Java、Kotlin/JVM、Node.js、Objective-C、PHP、Python、Ruby |
| タイプ | リモートプロシージャコールフレームワーク |
| ライセンス | Apacheライセンス2.0 |
| Webサイト | grpc |
gRPC ( gRPC Remote Procedure Calls [ 2 ]の略)は、クロスプラットフォームの高性能リモートプロシージャコール(RPC)フレームワークです。gRPCは当初Googleによって開発されましたが、オープンソースであり、多くの組織で使用されています。ユースケースは、マイクロサービスからコンピューティングの「ラストマイル」(モバイル、ウェブ、モノのインターネット)まで多岐にわたります。gRPCは、トランスポートにHTTP/2 、インターフェース記述言語にプロトコルバッファを使用し、認証、双方向ストリーミングとフロー制御、ブロッキングまたはノンブロッキングバインディング、キャンセルとタイムアウトなどの機能を提供します。多くの言語でクロスプラットフォームのクライアントとサーバーのバインディングを生成します。最も一般的な使用シナリオは、マイクロサービススタイルのアーキテクチャでサービスを接続したり、モバイルデバイスクライアントをバックエンドサービスに接続したりすることです。[ 3 ]
gRPCはHTTPトレーラーを使用するため、ブラウザでgRPCクライアントを実装することは不可能であり、代わりにプロキシが必要になります。[ 4 ]
歴史
Googleは2001年頃から、データセンター内およびデータセンター間で稼働する多数のマイクロサービスを接続するために、Stubbyと呼ばれる汎用RPCインフラストラクチャを開発しました。[ 5 ] 2015年3月、GoogleはStubbyの次期バージョンを開発し、オープンソース化することを決定しました。その結果生まれたのがgRPCです。
認証
gRPC は、トランスポート層セキュリティ(TLS)とトークンベースの認証をサポートしています。Google サービスへの接続には TLS を使用する必要があります。認証情報には、チャネル認証情報と通話認証情報の 2 種類があります。
トークンベースの認証のために、gRPCはサーバーインターセプター[ 6 ]とクライアントインターセプター[ 7 ]を提供します。
エンコーディング
gRPCはプロトコルバッファを使用してデータをエンコードします。プロトコルバッファはシリアル化形式とインターフェース定義言語を提供します。[ 8 ]
テスト
gRPC実装のテストに使用されるソフトウェアツールには、Postman、ezy、[ 9 ] Insomnia、Step CIなどがあります。[ 10 ]
採択
gRPCは多くの組織で使用されており、Uber、[ 11 ] Square、Netflix、IBM、CoreOS、Docker、CockroachDB、Arista Networks、 Cisco、Juniper Networks、[ 12 ] Spotify、[ 13 ] Zalando、[ 14 ] Dropbox、[ 15 ]、そして元の開発者であるGoogleも含まれています。
オープンソースプロジェクトu-bmcは、インテリジェントプラットフォーム管理インターフェース(IPMI)の代わりにgRPCを使用しています。 [ 16 ] 2019年1月8日、Dropboxは、サービス指向アーキテクチャ(SOA)の中核となるRPCフレームワーク「Courier」の次期バージョンをgRPCベースに移行すると発表しました。これは主に、既存のカスタムRPCフレームワークとの整合性が高いためです。[ 17 ]
代替案
参照
参考文献
- ^ 「gRPC リリース」 . GitHub . 2025年2月15日閲覧。
- ^ 「FAQ」 . gRPC .
- ^ 「gRPCについて」 . gRPC . 2021年5月25日閲覧。
- ^ 「ブラウザにおけるgRPCの現状」gRPC . 2019年1月8日。
- ^ 「gRPC:真のインターネット規模のRPCフレームワークが1.0になり、本番環境への導入が可能に」 2016年8月24日。 2023年4月3日閲覧。
- ^ “gRPC Server Interceptor” . 2023年2月27日. 2023年3月7日時点のオリジナルよりアーカイブ。
- ^ "gRPC" . grpc.io. 2020年2月24日閲覧。
- ^ JamesNK. 「gRPC サービスと HTTP API の比較」 . docs.microsoft.com . 2020年2月24日閲覧。
- ^ 「GitHub の ezy」 . GitHub .
- ^ 「Step CI ドキュメント」。
- ^ 「Uber の gRPC」 2021年5月19日。
- ^ "gRPC" . grpc.io. 2020年2月24日閲覧。
- ^ 「Spotify における gRPC」(PDF) . jfokus.se . 2020年5月12日閲覧。
- ^ “ザランド技術レーダー” .オープンソース.zalando.com 。2021年4月8日閲覧。
- ^ 「DropboxをNginxからEnvoyに移行した方法」 Dropbox.Tech . 2020年10月30日閲覧。
- ^ "u-bmc" . GitHub.com . 2022年10月5日.
- ^ Nigmatullin, Ruslan; Ivanov, Alexey (2019年1月8日). 「Courier: DropboxのgRPCへの移行」. 2019年1月9日閲覧。