golang

GolangでgRPC

gRPC は、RPC (Remote Procedure Call) を実現するためにGoogleが開発したプロトコルの1つ。 Protocol Buffers を使ってデータをシリアライズ(異なるプログラミング言語間で XML や JSON といったデータフォーマットを介することなる透過的にデータをやり取り)し、HTTP/2 ベース高速な通信を実現できる。 プログラミング言語に依存しない IDL(インターフェース定義言語)を使ってあらかじめAPI仕様を .proto ファイルとして定義し、そこからサーバー側&クライアント側に必要なソースコードのひな形を生成。 環境設定 gRPC その他 Tips 環境設定 ここでは 公式 とは異なる方法で設定して軽く動確する。(基本は公式参照) $ go get -u google.golang.org/grpc $ brew install protobuf # protoc コマンドが入る(ここが公式とは異なる) $ protoc --version # 必ずバージョンを確認する libprotoc 3.14.0 $ go get -u github.com/golang/protobuf/protoc-gen-go # go に対応するコードを出力するためのプラグイン git clone -b v1.34.0 https://github.com/grpc/grpc-go でサンプル取得できる。 以下 2 つのターミナルで動かしてみる。 ターミナル1:サーバサイド $ cd grpc-go/examples/helloworld $ go run greeter_server/main.