Go言語でgRPC使う 体系だった理解のためのメモ
すごいざっくりした説明
gRPCとは
HTTP/2ベースでProtocol Buffersを使用して、別言語間等でもある程度の型安全性を保ちつつ、データを送受信するためのプロトコル。マイクロサービス間の通信でよく使用する。
Goで使う際に必要なもの
gRPC
Go向けgRPCライブラリ。
$ go get -u google.golang.org/grpc
protoc-gen-go
Protocol Buffersをソースコードに変換するツール。
$ go get -u github.com/golang/protobuf/protoc-gen-go
protoc
ホストOS上でprotocするためのコンパイラ。GitHubの下記リポジトリからダウンロードする。binに入っているprotocというバイナリファイルを、$GOPATHのbinなど、$PATHに通っている場所に配置して使用する。
例えば、macOS Xなら protoc-3.6.1-osx-x86_64.zip をダウンロードする。
使い方
Go用プログラムの作成
protocコマンドで.protoファイルからGoのソースコードを自動生成する。
$ protoc --go_out=plugins=grpc:<出力先パス> <.protoファイルのパス>
# 例
$ protoc --go_out=plugins=grpc:../pb test.proto
# これにより ../pb 配下に test.pb.go が出力される
ドキュメントの自動生成
protoc-gen-docをgo getして取得する。
$ go get -u github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc
ドキュメント自動生成の実行。
$ protoc --doc_out=html,index.html:./ proto/*.proto
grpc-go
Go向けgRPCライブラリの開発リポジトリ。
サンプル
参考になった記事
ネットにも豊富に情報があるかと言うとあまりなく、こちらの方々の記事が大変参考になりました。
- RESTでの受付など、実践的なところも含めて細かくサンプルが提示されている。
- 朝日ネットの技術ブログ セットアップから実行まで
- 同じような感じのセットアップから実行まで
- 朝日ネットの方の記事ではprotocのダウンロード、設置が書かれてなかった。下記は書かれている。
- https://medium.com/eureka-engineering/golang%E3%81%A7grpc%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9Fapiserver%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B-9e608be200b1
Author And Source
この問題について(Go言語でgRPC使う 体系だった理解のためのメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/kent-hamaguchi/items/0cded125abab68361e81著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .