非GRPC開発者からのGRPCプライマー


私は、当時GRPCについて聞き続けます;既存の傾向が急上昇しているか、偶然の一致であるかどうかわからない.いずれにしても、私はコンセプトを掘り下げたことがないので、そうするのに良い時期だと思った.

GRPCのハイレベルビュー


GRPCはRPCフレームワークです.興味深いことに、初期の“G”は“一般的な(目的)”ではなく、“Google”の略です.
GRPCはRPC形式の通信が必要なあらゆる種類の状況で使用できるRPCフレームワークです.
通常、我々はサービス間の通信について話しています.
GRPCは、サービスインターフェイス、通信形式、認証、ヘルスチェックなどの定義のように、サービス間の通信に必要なすべての退屈なものの面倒を見ます.
しかし、そうするためには、まず最初にいくつかのupfront workをする必要があります.

…を待つ.RPCとは


私は、あなたが前のパラグラフで未知の用語に遭遇したかもしれないと理解します.
したがって、RPCはサービス呼び出しにサービスを提供するためのテクニック(そして、RESTful APIの前に非常に人気がある)です.
その場合、呼び出しサービスBではなく、コードリーダの視点から、これは同じマシン上にあるように見えます.
すべての高品質の抽象化と同様に、RPCは、ネットワーク通信を実行するために必要な低レベルの詳細を非表示に大きな仕事をします.
RPCはまた、RESTから別の規則と意味論を持ちます.例では、RPCではコールのようなものを見ることができます
POST /addNewProduct
身体で
{"company_id": 2}
残りの部分では、何かを行う
POST /products
同じ体で.
以下は、RPCクライアント・サーバ通信を示すgeekstogeeksから借りた良い図です

プロトコルバッファ


プロトコルバッファはGRPCフレームワークの最も一般的な実体です.彼らは、GRPCを活用するために「我々がする必要があるupfront仕事」の一部です.
彼らがすることは、通信の両端でデータをシリアル化して、逆シリアル化することです.以下のような形式で構造体を宣言できます:
message Point {
  int32 x = 1;
  int32 y = 2;
}
簡単、右?
最良の部分は、プロトコルバッファがバイナリでシリアル化されることであり、これは(他の利点の中で)小さいサイズ(JSONのようなテキスト形式と比較して)とより速い伝送を意味します.

サポート言語


GRPCは、主に主なプログラミング言語のほとんどをサポートしています.この記事の執筆時点で、are
C/C++
C#
Dart
Go
Java
Kotlin/JVM
Node.js
Objective-C
PHP
Python
Ruby

どこから始めますか


GRPCとは別に.ああ、私は自由な資源を見つけるのに苦労しました.二つ選ぶことができれば、
あなたが数ドルを支払う気があるならば、スティーブンマレックのcourseはあなたを失望させません.

結論


この短い記事を読んでくれてありがとう.私は、GRPCがあなたが(Micro)サービスで働いているならば、私があなたに推薦する非常におもしろいフレームワークであると言わなければなりません.