参考:Google Protocol Buffer 和 gRPC 简介
首先安装 golang/protobuf Golang 语言版本的 API 时,需要先安装标准 C++ 实现的 protocol buffer google/protobuf,使用linux的话就是先到github上下载对应的二进制文件
下载完解压之后将bin目录加入环境变量,如果没问题的话执行protoc --version能看到protoc的版本号。
接下来可以安装支持 Go 调用的 Protocol buffer API 了:
go get -u github.com/golang/protobuf/protoc-gen-go
接下来安装gRPC,如果网络可以翻墙的话那就很简单直接go get 搞起来:
go get google.golang.org/grpc
一般网络条件有限的话就直接上github上搜一个使用了gRPC的项目下载下来(比如这个),把这个放到自己的vendor里面,很完美。
到此准备工作就齐全了,接下来随便写个什么.proto 文件来试一试:
syntax = "proto2";
package example;
enum FOO { X = 17; };
message Test {
required string label = 1;
optional int32 type = 2 [default=77];
repeated int64 reps = 3;
optional group OptionalGroup = 4 {
required string RequiredField = 5;
}
}
这个是 proto2的,proto3会有些区别,具体不再这里讨论。上面写完之后就可以执行以下命令:
protoc --go_out=plugins=grpc:. *.proto
会生成 .pd.go文件这就是我们会用到的结构体和一些调用方法。
你可以照着这篇文章写来玩一玩:gRPC & Protocol Buffer 构建高性能接口实践