びくんびくんしながらコードを書く。

いしきひくい系エンジニアのらくがき帳

gRPCサーバとクライアントについて入門してみた。

入門してみた記事が続いているのですが、今回は実際に仕事で検証するための第一歩としてgRPCに入門してみました。

本記事は ディップ with 全部俺 AdventCalendar 11日目の記事です。

今回はgRPCの公式からクイックスタートのGoを選んで入門してみました。

grpc.io

作ったプログラムは下記です。

github.com

Repository名がserverになってますが、protoフィルもclientも一緒になっています。

今回はServerもClientもgoで実装したものを使っています。

私の環境はMacなので、Mac用の担ってしまいますが、事前にインストールしないとイケないものを下記にまとめます。

$ go get -u google.golang.org/grpc
$ go get -u github.com/golang/protobuf/protoc-gen-go
$ brew install protobuf

.protoからgoのserviceをGenerateCommandは下記です。

protoc --go_out=plugins=grpc:. ./proto/*.proto

上記Commandでは、protoディレクトリに.protoファイルも.goファイルも格納されることとなります。
別ディレクトリで管理する場合は適宜読み替えてみてください。

本AdventCalendar中に別の言語のClientも作って通信を行ってみたいと思います。