よくある質問

よくある質問

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

gRPCとは

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

gRPCを作成した理由の背景については、より長い動機と設計原則の記事をお読みください。

gRPCとは何の略ですか?

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

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

主な使用シナリオ

  • 低レイテンシ、高スケーラビリティな分散システム。
  • クラウドサーバーと通信するモバイルクライアントの開発。
  • 正確で効率的、かつ言語に依存しないプロトコルの設計。
  • 認証、ロードバランシング、ロギング、モニタリングなどの拡張を可能にするレイヤードデザイン。

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

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

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

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

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

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

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

gRPCはどのライセンスで提供されていますか?

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

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

貢献者は非常に歓迎されており、リポジトリはGitHubでホストされています。コミュニティからのフィードバック、追加、バグを歓迎します。個人および企業貢献者は、CLAに署名する必要があります。gRPCに関するプロジェクトのアイデアがある場合は、ガイドラインを読んで、こちらから提出してください。GitHubのgRPC Ecosystem組織の下に、増加中のプロジェクトリストがあります。

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

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

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

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

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

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

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

gRPCのバージョンポリシーについては、こちらを参照してください。

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

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

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

gRPCプロジェクトは、マスターブランチの先端が常に安定しているモデルで動作します。プロジェクト(さまざまなランタイム全体)は、ベストエフォートベースで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上のバイナリブロブよりも優れているのはなぜですか?

これは、ワイヤー上のgRPCの大部分です。しかし、gRPCは、一般的なHTTPライブラリが通常提供しない高レベルの機能を一貫して提供するライブラリのセットでもあります。そのような機能の例は次のとおりです。

  • アプリケーションレイヤーでのフロー制御とのインタラクション
  • カスケード呼び出しキャンセル
  • ロードバランシングとフェイルオーバー

gRPCがRESTよりも優れている(または劣っている)点は何ですか?

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

gRPCはどのように発音しますか?

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