Skip to content

Instantly share code, notes, and snippets.

@sanoyo
Last active January 4, 2020 08:47
Show Gist options
  • Save sanoyo/41eb70a7c6002bfaaab3ee5679c865d7 to your computer and use it in GitHub Desktop.
Save sanoyo/41eb70a7c6002bfaaab3ee5679c865d7 to your computer and use it in GitHub Desktop.
gRPC 入門

gRPC

環境

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

gRPC

いまさらだけどgRPCに入門したので分かりやすくまとめてみた

gRPCを使う理由

  • HTTP/2をしようできる
  • バイナリで通信できるので、速度が早い
  • 様々な言語で通信することができる

gRPC実装の流れ

  • protoファイル作成(インターフェース実装)
  • 言語用のファイル作成(Goならxxxx.pb.goのファイルが出力される)
  • interface実装
  • main.go実装

gRPC入門

HTTP2

そろそろ知っておきたいHTTP/2の話

HTTP

divideのサーバーにログイン evans divide-service/dividepb/divide.proto -p 50060

sumのサーバーにログイン evans sum-service/sumpb/sum.proto

実際に動かす call Sum

gRPCのデバッグにはevansを使うと便利

Envoy

使用する理由

Envoyがないと、ロードバランシングできない。

kubernetesでgRPCするときにenvoy挟んでみたよ
Envoy プロキシを使用して GKE 上で gRPC サービスの負荷分散を行う Envoyでサービスメッシュを作ろう

インストール

npm install -g grpcc

gRPCクライアントのいろいろ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment