FAQ

FAQ

よくある質問をまとめました。ここであなたの答えが見つかることを願っています :-)

gRPCとは?

gRPCは、どこでも実行できる最新のオープンソースリモートプロシージャコール(RPC)フレームワークです。クライアントアプリケーションとサーバーアプリケーションが透過的に通信できるようにし、接続されたシステムの構築を容易にします。

gRPCを作成した背景については、より詳細な動機と設計原則の投稿をお読みください。

gRPCは何の略ですか?

もちろん、gRPC Remote Procedure Callsです!

なぜgRPCを使いたいのですか?

主な使用シナリオ

  • 低レイテンシーで、高度にスケーラブルな分散システム。
  • クラウドサーバーと通信するモバイルクライアントの開発。
  • 正確で効率的、かつ言語に依存しない新しいプロトコルの設計。
  • 認証、負荷分散、ロギング、監視など、拡張を可能にするレイヤー化された設計。

誰がこれを使っていて、なぜですか?

gRPCはCloud Native Computing Foundation(CNCF)プロジェクトです。

Googleは、gRPCの基盤となる多くのテクノロジーと概念を長年使用してきました。現在の実装は、Googleのいくつかのクラウド製品およびGoogleの外部向けAPIで使用されています。また、SquareNetflixCoreOSDockerCockroachDBCiscoJuniper Networksおよびその他多くの組織や個人によって使用されています。

どのプログラミング言語がサポートされていますか?

公式にサポートされている言語とプラットフォームについては、公式サポートをご覧ください。

gRPCを使い始めるにはどうすればよいですか?

gRPCのインストールを開始するには、こちらの手順に従ってください。または、gRPC GitHub組織ページにアクセスし、興味のあるランタイムまたは言語を選択し、READMEの手順に従ってください。

gRPCはどのライセンスの下にありますか?

すべての実装は、Apache 2.0の下でライセンスされています。

どのように貢献できますか?

コントリビューターは大歓迎で、リポジトリはGitHubでホストされています。コミュニティからのフィードバック、追加、バグを期待しています。個人のコントリビューターと企業のコントリビューターの両方が、CLAに署名する必要があります。gRPCに関するプロジェクトのアイデアがある場合は、ガイドラインを読んで、こちらから送信してください。GitHubのgRPC Ecosystem組織には、プロジェクトのリストが増え続けています。

ドキュメントはどこにありますか?

grpc.ioのドキュメントをご覧ください。

ロードマップは何ですか?

gRPCプロジェクトにはRFCプロセスがあり、このプロセスを通じて新しい機能が設計され、実装が承認されます。それらはこのリポジトリで追跡されます。

gRPCのリリースはどのくらいの期間サポートされますか?

gRPCプロジェクトではLTSリリースは行いません。上記のローリングリリースモデルを考えると、現在の最新リリースと、その前のリリースをサポートします。ここでのサポートとは、バグ修正とセキュリティ修正を意味します。

gRPCのバージョン管理ポリシーは何ですか?

gRPCのバージョン管理ポリシーについては、こちらをご覧ください。

最新のgRPCバージョンは何ですか?

最新のリリースタグはv1.62.0です。

gRPCのリリースはいつ行われますか?

gRPCプロジェクトは、masterブランチの先端が常に安定しているモデルで動作します。プロジェクト(さまざまなランタイム全体)は、6週間ごとにチェックポイントリリースをベストエフォートベースで出荷することを目指しています。リリーススケジュールについては、こちらをご覧ください。

gRPCのセキュリティ脆弱性を報告するにはどうすればよいですか?

gRPCのセキュリティ脆弱性を報告するには、こちらに記載されているプロセスに従ってください。

ブラウザで使えますか?

gRPC-Webプロジェクトは一般提供されています。

お気に入りのデータ形式(JSON、Protobuf、Thrift、XML)でgRPCを使用できますか?

はい。gRPCは複数のコンテンツタイプをサポートするように拡張できるように設計されています。最初のリリースではProtobufのサポートが含まれており、外部サポートによりFlatBuffersやThriftなどの他のコンテンツタイプもさまざまな成熟度レベルでサポートされています。

サービスメッシュでgRPCを使用できますか?

はい。gRPCアプリケーションは、他のアプリケーションと同様に、サービスメッシュにデプロイできます。gRPCは、xDS APIもサポートしており、これにより、サイドカープロキシなしでサービスメッシュにgRPCアプリケーションをデプロイできます。gRPCでサポートされているプロキシレスサービスメッシュ機能は、こちらにリストされています。

gRPCはモバイルアプリケーション開発にどのように役立ちますか?

gRPCとProtobufを使用すると、サービスを正確に定義し、iOS、Android、およびバックエンドを提供するサーバー用の信頼性の高いクライアントライブラリを自動生成する簡単な方法が提供されます。クライアントは、高度なストリーミングと接続機能を利用して、帯域幅を節約し、少ないTCP接続でより多くの処理を行い、CPU使用率とバッテリー寿命を節約できます。

なぜgRPCはHTTP/2上のバイナリBLOBよりも優れているのですか?

これは主にgRPCがワイヤー上で行うことです。ただし、gRPCは、一般的なHTTPライブラリでは通常提供されない、プラットフォーム間で一貫して高度な機能を提供する一連のライブラリでもあります。そのような機能の例は次のとおりです。

  • アプリケーション層でのフロー制御との対話
  • カスケードコールキャンセル
  • 負荷分散とフェイルオーバー

なぜgRPCはRESTよりも優れている/劣っているのですか?

gRPCは、HTTP/2を介したHTTPセマンティクスに大きく従いますが、フルデュプレックスストリーミングを明示的に許可しています。パス、クエリパラメータ、ペイロードボディから呼び出しパラメータを解析すると、レイテンシーと複雑さが増すため、呼び出しディスパッチ中のパフォーマンス上の理由から静的パスを使用するため、一般的なRESTの規則からは逸脱しています。また、HTTPステータスコードよりもAPIユースケースに直接適用できると考える一連のエラーも形式化しました。

gRPCはどう発音しますか?

ジー・アー・ピー・シー。