ProtobufとgRPC、およびその両方の使用方法を理解しようとします。次のことを理解してください。
私はすでに知っている-または私が知っている-と仮定-
すでにこのテクノロジーを使用している人にとっては簡単な質問だと思います。私はまだ忍耐強く助けてくれてありがとう。また、ネットワークの技術を深く掘り下げてくれたことにも本当に感謝しています。
Protocol buffers is(are?)is Interface Definition Language and serialization library:
gRPCは同じIDLを使用しますが、Protobufデータ構造をデータ型として使用してリモートプロシージャコールメソッドシグネチャを定義できる構文「rpc」を追加します。
質問への回答:
実際、gRPCとProtobufはまったく異なるものです。簡単にしましょう:
gRPCには2つのサイドがあります。サーバーサイドと、サーバーにダイヤルできるクライアントサイドです。サーバーはRPC(つまり、リモートで呼び出すことができる関数)を公開します。そして、あなたはそこにたくさんのオプションがあります:あなたは(TLSを使用して)通信を保護することができます(インターセプターを使用して)認証層を追加します...
Protobufは、クライアント/サーバーである必要のない任意のプログラム内で使用できます。データを交換する必要があり、それらを厳密に入力する場合、protobufは素晴らしいオプションです(高速で信頼性が高い)。
そうは言っても、両方を組み合わせてニースのクライアント/サーバーシステムを構築できます。gRPCはクライアント/サーバーコードであり、データプロトコルをプロトバフします。
PS:Go-を使用してgRPCとprotobufでクライアント/サーバーを段階的に構築する方法を示すために paper を書きました。
grpcはgoogleによって構築されたフレームワークであり、google自体からの本番プロジェクトで使用され、#HyperledgerFabricはgrpcで構築され、grpcで構築された多くのオープンソースアプリケーションがあります
protobuffは、jsonのようなデータ表現です
grpc
プロトバフ