初次見面GRPC
===
### PRC原理


Gopher和你打一個招呼Hello GRPC
課程代碼:[https://github.com/dollarkillerx/GRPC-Study](https://github.com/dollarkillerx/GRPC-Study)
### 課程環境
- go version > 1.6 課程是go1.12.5
- os: ubuntu18.4
- 包管理:vgo
##### 安裝grpc
` vgo get -u -v google.golang.org/grpc`
##### 安裝Protocol Buffers v3
[https://github.com/google/protobuf/releases](https://github.com/google/protobuf/releases)并配置到path
我們這里下載的是[protoc-3.8.0-osx-x86\_32.zip](https://github.com/protocolbuffers/protobuf/releases/download/v3.8.0/protoc-3.8.0-osx-x86_32.zip)
### 接下來,為Go安裝protoc插件
`go get -u github.com/golang/protobuf/protoc-gen-go `
### 目錄結構
```
.
├── client
├── routeguide
│?? ├── service.pb.go
│?? └── service.proto
└── server
```
### 生成客戶端和服務器代碼
`protoc -I routeguide/ routeguide/service.proto --go_out=plugins=grpc:routeguide`
~~~
// gRPC服務在.proto文件中定義,用于生成相應的.pb.go文件。該.pb.go文件是由編譯生成的.proto用協議的編譯器文件:protoc。
syntax = "proto3";
package proto;// 定義生成.pg.go包的內容
message Request {
int64 a = 1; // type name = size
int64 b = 2;
}
message Response {
int64 result = 1;
}
service AddService {
rpc Add(Request) returns (Response);
rpc Multiply(Request) returns (Response);
}
// protoc -I routeguide/ routeguide/service.proto --go_out=plugins=grpc:routeguide 生成文件
~~~