はじめに
実務でprotoを使って開発しているのですが、そこでgRPC通信という言葉をよく聞きました。「何の話や。。」と思ったので、調べたことをまとめてみます。
そもそもRPCとは?
以下、引用
RPCとは、あるコンピュータで動作するソフトウェアから、通信回線やコンピュータネットワークを通じて別のコンピュータ上で動作するソフトウェアへ処理を依頼したり、結果を返したりするための規約。
なるほど、よくわからん。
こちらの記事の表現がわかりやすかったので引用させていただきます。
サーバが実装している関数をクライアント側が叩く。逆も然り。
これが正解の表現なのかはわかりませんが、あるコンピュータで動作するソフトウェア(クライアント)から、通信回線やコンピュータネットワークを通じて別のコンピュータ上で動作するソフトウェア(サーバが実装しているプログラム)を叩くための規約なのかなと解釈しました。
ではgRPCとは
gRPCは、RPCを実現するためにGoogleが開発したプロトコルのようです。
特徴
クライアントアプリケーションが、他端末のサーバーアプリケーションのメソッドを直接呼び出せるため、マイクロサービスや分散アプリケーションを簡単に作成できるというものです。
公式ドキュメントから引用
他のコンポーネントとやり取りをするためのIDLとして、Protocol Buffersを利用していますと。(そのためのprotoだったのかと1人で納得)
まとめ
先人の記事のおかげで理解が深まりました。これで、gRPCの話が出てもビビらない気がします(たぶん)。
参考記事