gRPCとは?
まえがき
↓こちらの動画のまとめになります。
総括
・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.
-
.proto
ファイルより、Clientコード【client stub】とServerコードを自動生成。 - 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