Edited at

gRPCの概要だけ

gRPCを扱う事になったので概要だけ書く。概要の概要の概要です


gRPCとは?

Googleが開発したRPC(Remote Procedure Call)プロトコル。

ProtocolBuffersを使用し高速な通信が実現できる。


Protocol Buffer

プロトコルバッファーは構造化されたデータをシリアライズするための技術。

言語やプラットフォームに依存しないせず、.xmlよりシンプルで小さく高速なのが特徴。データを構造化する方法を定義してから生成されたソースコードを使用し、

様々なデータストリームとさまざまな言語(Go, PHP, Java, Ruby, Python)を使用して構造化データを簡単にRead/Writeすることができる。


詳細

gRPCではIDL(Interface Definition Language)を使ってあらかじめAPI仕様を.protoファイルとして定義し、

サーバー側&クライアント側に必要なソースコードの雛形を生成する。言語に依存しないIDLで先にインタフェースを定義することで色々なプログラミング言語の実装を生成できるというメリットがある。

マイクロサービス間の通信手段として使用する場面が多い。シリアライズされたデータはバイナリ形式でやり取りされるため高速に動作する。


gRPCの始め方


  • protocol buffer compilerをインストールする


  • .protoを用意する (自動生成ライブラリを使うのとよい)


  • .protoからサーバー側で実装する言語(Goとか)のインターフェースを作成する

  • ↑で作成したインターフェースにそって具体的な処理を実装する


ローカル環境で動作する場合、gRPCのcompiler&clientが必要

# Golangの場合

$ go get -u google.golang.org/grpc