gRPC是由Google主导开发的RPC框架,使用HTTP/2协议并用ProtoBuf作为序列化工具。支持多种语言,之所以采用golang,是因为其特点:C家族,程序员上手容易、动态语言,开发效率高,coroutine机制实现、大规模并发方案,标准库完善、部署容易。
一、GO语言及项目环境
1、在64位win10下安装go 1.9.2,将go.exe加入PATH变量,在命令行方便访问
2、建立测试工程目录,将该目录加入GOPATH环境变量
二、protobuf开发环境
1、从 https://github.com/google/protobuf/releases处下载protoc-3.4.0-win32.zip,解压到本地硬盘,bin/protoc.exe用于将.proto文件生成目标语言。
2、由于protoc.exe不支持生成golang,因此需要安装生成golang的插件
go get -ugithub.com/golang/protobuf/proto // golang protobuf 库
go get -ugithub.com/golang/protobuf/protoc-gen-go //protoc --go_out 工具
3、并将工程目录/bin下的protoc-gen-go.exe拷贝到protoc的解压目录
三、安装grpc
1、go get安装方式
网上介绍的go get安装方式,因golang.org被墙而超时出错:
2、手动安装
2.1、在项目工程的src目录下,建立子目录google.golang.org
2.2、Git clonegrpc-go到本地,并更名为grpc
D:\tyler.xiang\golang\esl\src>cd google.golang.org
D:\tyler.xiang\golang\esl\src\google.golang.org>git clone http://github.com/grpc/grpc-go
D:\tyler.xiang\golang\esl\src\google.golang.org>ren grpc-go grpc
3、安装grpc需要的库
3.1、建立golang.org/x目录,存放net、text
在工程目录src下建立golang.org/x
3.2、git clone net、text到本地
D:\tyler.xiang\golang\esl\src\golang.org\x>gitclone http://github.com/golang/net
D:\tyler.xiang\golang\esl\src\golang.org\x>gitclone http://github.com/golang/text
3.3、git clone go-genproto到工程目录src/google.golang.org,
D:\tyler.xiang\golang\esl\src\google.golang.org>gitclone http://github.com/google/go-genproto
D:\tyler.xiang\golang\esl\src\google.golang.org>ren go-genproto genproto
4、安装grpc到pkg
在工程目录/src下,执行go install
D:\tyler.xiang\golang\esl\src>go install google.golang.org/grpc
在工程目录/pkg下生成了库文件