栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Golang下生成protocol buffers代码以及grpc代码的简单教程

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Golang下生成protocol buffers代码以及grpc代码的简单教程

Golang下生成protocol buffers代码以及grpc的简单教程

本教程基于Goland IDE,Golang版本为1.17.4(建议使用1.16以上版本),生成了普通的pb和grpc代码

首先使用Goland创建一个新项目prototech

接着创建两个目录pb和proto,其中proto用来存放初始的.proto文件,pb存放生成的.pb.go源代码

在proto新建一个.proto文件test.proto


在test.proto中编辑以下文本

syntax = "proto3";  //protocol buffers的版本
package main;
option go_package = "/pb";   //输出的目标文件位置
message CPU{
  uint32 number_cores = 1;
  uint32 number_threads = 2;
  double max_hz_g = 3;
}

打开Terminal,安装protocol buffers的编译器,也可以直接下载最新的版本

//指定版本
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1

//最新版本
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

接着就可以开始编译.proto生成pg.go文件,由于我们的文件结构为:

prototech
-pb
-proto

当前的位置是/prototech,由于在test.proto中指定的go_package = “/pb”,我们可以直接将结果文件输出到pb目录下,通过修改go_package,你也可以自定义输出文件存放的位置

protoc --go-grpc_out=. proto/test.proto  

可以看到在pb目录下test.pb.go文件已经生成

如果要生成grpc.pb.go文件,修改一下命令行参数就行

protoc --go-grpc_out=. proto/test.proto

如果无法直接生成grpc.pb.go,可以尝试在test.proto中添加以下代码

syntax = "proto3";
package main;
option go_package = "/pb";
message CPU{
  uint32 number_cores = 1;
  uint32 number_threads = 2;
  double max_hz_g = 3;
}

service HelloService {
  rpc Hello (CPU) returns (CPU);
}

接着继续使用 protoc --go-grpc_out=. proto/test.proto,就能在pb目录下看到了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/903350.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号