| 開発者 | グーグル |
|---|---|
| 初回リリース | 2016年8月 |
| 安定リリース | 1.65.0 [1]
/ 2024年6月28日 |
| リポジトリ |
|
| 書かれた | Android Java、C#、C++、Dart、Go、Java、Kotlin/JVM、Node.js、Objective-C、PHP、Python、Ruby |
| タイプ | リモート プロシージャ コール フレームワーク |
| ライセンス | Apache ライセンス 2.0 |
| Webサイト | grpc.io |
gRPC(gRPCリモートプロシージャコール[2])は、クロスプラットフォームの高性能リモートプロシージャコール(RPC)フレームワークです。gRPCは当初Googleによって作成されましたが、オープンソースであり、多くの組織で使用されています。使用例は、マイクロサービスからコンピューティングの「ラストマイル」(モバイル、ウェブ、モノのインターネット)まで多岐にわたります。gRPCは、トランスポートにHTTP/2を使用し、インターフェイス記述言語としてプロトコルバッファーを使用し、認証、双方向ストリーミングとフロー制御、ブロッキングまたはノンブロッキングバインディング、キャンセルとタイムアウトなどの機能を提供します。多くの言語のクロスプラットフォームクライアントとサーバーバインディングを生成します。最も一般的な使用シナリオには、マイクロサービススタイルのアーキテクチャでのサービスの接続、またはモバイルデバイスクライアントをバックエンドサービスに接続することがあります。[3]
gRPCのHTTP/2の使用は複雑であると考えられています。ブラウザにgRPCクライアントを実装することは不可能であり、代わりにプロキシが必要になります。[4]
歴史
2001年頃から、Googleはデータセンター内やデータセンター間で稼働する多数のマイクロサービスを接続するために、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」の次期バージョンを、既存のカスタムRPCフレームワークとよく適合するという理由から、gRPCベースに移行すると発表しました。[17]
代替案
参照
参考文献
- ^ 「gRPC リリース」。GitHub。2024年 7 月 6 日閲覧。
- ^ 「FAQ」。gRPC。
- ^ 「gRPC について」。gRPC 。2021年 5 月 25 日閲覧。
- ^ 「ブラウザにおける gRPC の現状」。gRPC。2019 年 1 月 8 日。
- ^ 「gRPC: 真のインターネット規模の RPC フレームワークが 1.0 になり、実稼働環境への導入が可能に」。2016 年 8 月 24 日。2023 年 4 月 3 日閲覧。
- ^ 「gRPC サーバーインターセプター」。
- ^ "gRPC". grpc.io . 2020年2月24日閲覧。
- ^ JamesNK. 「gRPC サービスと HTTP API を比較する」。docs.microsoft.com。2020年2 月 24 日閲覧。
- ^ 「GitHub 上の ezy」。
- ^ 「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-01-08). 「Courier: Dropbox の gRPC への移行」。2019 年 1 月 9 日閲覧。
外部リンク
- gRPC ホームページ
- gRPC – github.com
- gRPC – opensource.google.com
