[解決済み] protobufとgRPCの比較
2022-05-14 10:26:18
質問
protobufとgRPCを理解し、どのように両方を使うことができるかを理解しようとしています。次のことを理解するのを助けてください。
- を考慮すると OSI モデル を考えると、例えばProtobufはレイヤー4にあるのでしょうか?
- メッセージ転送を通して考えると、quot;flow" はどのようなもので、gRPC は protobuf が見逃していることを行っているのでしょうか?
- 送信者が protobuf を使用する場合、サーバーは gRPC を使用できますか、または gRPC は gRPC クライアントのみが提供できる何かを追加しますか?
- gRPC が同期および非同期通信を可能にするならば、Protobuf は単にマーシャリングのためであり、したがって状態とは何の関係もない - true または false ですか?
- RESTやGraphQLの代わりに、フロントエンドアプリケーションの通信にgRPCを使用することはできますか?
すでに知っている - あるいは知っていると仮定している - ことです。
- データ交換のためのバイナリプロトコル
- Google による設計
- クライアントとサーバーで生成された構造体のような記述を使用して、マーシャルメッセージの解除を行います。
- protobuf (v3) を使用します。
- 再びGoogleから
- RPC 呼び出しのためのフレームワーク
- HTTP/2 も利用できるようにする
- 同期・非同期通信可能
すでにその技術を使っている人にとっては簡単な質問だと、私はまた思っています。それでも、私に忍耐強く付き合い、助けてくれることに感謝します。また、技術に関するネットワークの深堀りも本当にありがたいです。
どのように解決するのですか?
プロトコル バッファ は、インターフェース定義言語とシリアライゼーションライブラリです。
- IDLでデータ構造を定義します。つまり、使用したいデータオブジェクトを記述します。
- データオブジェクトをバイナリに変換するルーチンを提供します。
gRPC は同じIDLを使用しますが、構文 "rpc" が追加され、Protobufデータ構造をデータ型として使用して、リモートプロシージャコールメソッドのシグネチャを定義することができます。
- データ構造を定義する
- RPCメソッドの定義を追加します。
- ネットワーク上でメソッドシグネチャを提供し、呼び出すためのコードを提供します。
- 必要であれば、Protobufを使用してデータオブジェクトを手動でシリアライズすることができます。
質問の答えとして
- gRPC はレイヤー 5、6、および 7 で動作します。Protobuf はレイヤー 6 で動作します。
- メッセージ転送と言った場合、Protobufは転送そのものには関係ありません。データ転送のどちらかの端でのみ動作し、バイトをオブジェクトに変換します。
- デフォルトでgRPCを使用するということは Protobufを使用していることになります。 . gRPC と相互運用するために、gRPC ではなく Protobuf を使用する独自のクライアントを作成したり、gRPC に他のシリアライザをプラグインすることもできますが、gRPC を使用する方が簡単です。
- 真
- はい、できます。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン