😊

gRPCとは?

2023/01/02に公開

まえがき

↓こちらの動画のまとめになります。

https://www.youtube.com/watch?v=gnchfOojMk4

総括

・gRPC = a implmentation of RPC(Remote Procedure Call)
・RPC = 他マシンにある関数を、いわゆるREST API感覚で呼べる。
・RPC = Protocol Buffersで、データをbinaryに変換&HTTP/2でやり取りするから高速👍
・使用用途は「microservice間の相互通信」「モバイルアプリ(iOS/Android)」

gRPC

・an open-source remote procedure call framework created by Google in 2016.
・a rewrite of their internal RPC infrastracture that used for years.
gRPC is a popular implementation of RPC.

What is RPC(remote procedure call)?

local procedure call

・a function call within a process to execute some call.

remove procedure call

・enables one machine to invoke some code on another machine

✅「同じプロセス内で関数を呼び出す」→「別ネットワークの別マシンにある関数を呼び出す」。

How RPC works?

RPCS uses Protocol Buffers as its data interchange format.

✅RPCはデータ転送フォーマットとしてProtocol Buffersを使っている。

Protocol Buffers

Protocol Buffers is a language-agnostic(言語に依存しない) and platform-agnostic(Platformに依存しない) mechanism for encoding structured data.

gRPC sends the data over the network as a stream of HTTP/2 data frames.【binary encoding】 = ✅gRPC is said to be 5 times faster that JSON.

  1. .protoファイルより、Clientコード【client stub】とServerコードを自動生成。
  2. Client stubで、受け取ったデータをencodingして、HTTP/2経由でServerにリクエストする。

Web Client(Browser)-Web Server間での利用

🔴ブラウザ自身がgRPC clientになる必要があるが、現状どのブラウザも非対応。
✅proxyをgRPC clientにする方法を使えば、ブラウザからgRPCの利用可能。【gRPC Webと呼ばれている】→ 🔵しかしgRPCの使用用途としては△

gRPCはどこで本領発揮する?

✅microservice間の相互通信。
✅モバイルクライアント(iOS/Android)--バックエンドサービス間の通信。

Discussion