LoginSignup
5
0

More than 3 years have passed since last update.

gRPCについてまとめた

Last updated at Posted at 2020-12-20

背景

私はクライアント、サーバ、プロトコルなどのwebの基本知識がよく分かっていないままgRPCを使った開発に携わり、とても苦労したので自分なりに調べたことをまとめてみました。

gRPCの前に

gRPCがなんなのかを知る前にそもそもwebサービスの仕組みを知っておく必要がありました。下のサイトがわかりやすいと思いました。
https://developer.mozilla.org/ja/docs/Learn/Getting_started_with_the_web/How_the_Web_works

一言でgRPCとはなんなのか

それではgRPCの説明です。まず僕がgRPCの勉強の始めに「gRPCとは」とgoogleで検索してみると、

googleが作った、HTTP/2とProtocol Buffersを利用したRPCシステム

とこんな感じに出てきました。しかし当時の僕に理解できた横文字はgoogleだけでした。
というわけで、ひとつずつ解説していきます。

HTTP/2とは

ウェブサーバーからウェブページのデータを取得するHTTPというプロトコルですが、お尻の「/2」はHTTPのバージョンです。ひとつ前のバージョンは「HTTP/1.1」であり、HTTP1.1は原則ひとつずつしかリクエストを送ることができません。それに対し、HTTP/2は複数のリクエストを同時に処理することが可能なため高速なwebページの読み込みが可能です。

Protocol Buffersとは

IDL(Interface Definition Language)のひとつ。インターフェースを定義して、コンパイラ(protoc)によってサーバ側とクライアント側のコードを自動生成します。

RPCとは

RPCとはRemote Procedure Callの略です。RPCを使えば「クライアントで関数を呼び出して遠隔のサーバでその関数の処理をして、結果をクライアントに返す」ということができます。

なぜgRPCを使うか

  • マイクロサービス間の高速な通信
  • Protoファイルのサービス定義がAPIスキーマとしての役割を果たすのでSchema Driven Developmentで高い生産性を実現
5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0