GRpc-Go使用笔记

linux下配置GRpc-golang

1、git中下载protobuf包

2、解压(/usr/local/protobuf)

unzip protobuf-cpp-3.0.0-alpha-3.zip

3、进入解压后的目录

cd protobuf/

4、编译安装

./configure

make && sudo make install

5、获取grpc-golang插件,进入go安装目录下的bin目录,运行以下命令

go get -u github.com/golang/protobuf/protoc-gen-go #golang 插件

运行后检查protoc-gen-go可执行文件的位置,bin目录下

6、从grpc包中找出protoc可执行文件,找linux64位的版本,拷贝到/usr/local/bin下

7、生成golang的代理类文件(需要protoc 和 protoc-gen-go 两个可执行文件),执行以下命令的任意一条:

protoc --go_out=gen-go taochees.proto --grpc_out=gen-go --plugin=protoc-gen-grpc=protoc-gen-go

或者

protoc --go_out=plugins=grpc:./gen-go taochees.proto

./gen-go是生成的代理类文件的保存路径

taochees.proto 是proto定义文件

8、文件生成成功后是:taochees.pb.go

直接拷贝到go的项目中(或go/src/taochees/taochees.pb.go)即可使用

9、C#生成的类库中repeated和map类型的字段,生成出来的属性只有get方法,没有set方法,因此使用时无法将其他对象赋值给此类属性,只能通过该属性的Add或Remove方法新增或移除值

10、go项目编译中,有可能由于版本不一致导致编译不过去,根据错误信息更新相应的package即可,此次调试中:

需从google上下载最新的golang包(go1.7.3.linux-amd64.tar.gz)( tar -xzvf go1.7.3.linux-amd64.tar.gz),

单独下载最新的net、http2、google.golang.org、golang.org、vendor包下更新golang.org