go 使用 Protobuf

作者: adm 分类: go 发布时间: 2022-09-30

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/grpc

protoc-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 

大功告成

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!