go 使用 Protobuf
Protobuf核心的工具集是C++语言开发的,在官方的protoc编译器中并不支持Go语言。要想基于上面的hello.proto文件生成相应的Go代码,需要安装相应的插件。首先是安装官方的protoc工具,可以从 https://github.com/google/protobuf/releases 下载。然后是安装针对Go语言的代码生成插件,可以通过
下载protobuff
https://github.com/google/protobuf/releases
我是win10 系统64位的 ,下载相应的包
2.将下载的文件放入D盘,然后添加环境变量
3.测试环境变量是否OK
4.下载 protoc-gen-go
go get -u github.com/golang/protobuf/protoc-gen-go
若如上命令执行失败,请配置代理
go env -w GO111MODULE=on //打开模块 go env -w GOPROXY=https://goproxy.cn,direct //启用代理
安装gRPC
go get -u google.golang.org/grpc 不过由于国内的网络原因上面的命令可能不会成功 执行下面的多条命令来代替 git clone https://github.com/golang/net.git $GOPATH/src/golang.org/x/net git clone https://github.com/golang/text.git $GOPATH/src/golang.org/x/text git clone https://github.com/google/go-genproto.git $GOPATH/src/google.golang.org/genproto git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpcprotoc-gen-go.exe 存放的位置在你的go安装目录下的bin目录下面 如果没有的话 在命令行输入 go env 查看 GOPATH= 的路径,看一下是否存放在 GOPATH 下面 的bin 目录中 5.然后将 protoc-gen-go.exe 放入 protoc.exe 安装目录中 6.创建 hello.proto 内容如下syntax = "proto3"; option go_package="./;hello"; package service; message ProdRequest{ int32 Prod_id = 1; } message ProdResponse{ int32 Prod_stock = 1; }说明
option go_package = "path;name";
path 表示生成的go文件的存放地址,会自动生成目录的。
name 表示生成的go文件所属的包名
然后通过以下命令生成相应的Go代码:protoc --go_out=. hello.proto常用命令
protoc --go_out=. ./helloworld.proto protoc --go_out=plugins=grpc:. hello.proto protoc --go-grpc_out=. hello.proto大功告成