go 使用protobuf协议(Protocol Buffers)

更新于 2022-06-21 19:20 111
专栏: Golang 标签: protobuf

Protocol Buffers,是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。grpc框架将通过此协议进行通讯。

1. 安装 protoc 程序

https://github.com/protocolbuffers/protobuf/releases 下载对应的系统版本
下载之后解压,并将目录添加至环境变量中

检测是否成功,cmd输入

  1. protoc --version // 输出 libprotoc 3.21.1

2. 安装 protoc-gen-go

  1. go install github.com/golang/protobuf/protoc-gen-go@latest

检测是否成功,cmd输入

  1. protoc-gen-go // 没有任何输出则成功

3. 编写.proto文件

名为:protos\route_guide.proto

  1. syntax = "proto3";// 指定版本
  2. option go_package="./routeGuide;route_guide"; // .proto 所在路径,分号后代表生成go文件后的包名称(可不写)
  3. service RouteGuide{
  4. // 获取用户信息
  5. rpc GetUserInfo(GetUserInfoParam) returns (UserInfo) {}
  6. }
  7. // message 一种消息类型
  8. message GetUserInfoParam{
  9. int32 uid=1;
  10. // string name=2;
  11. // int32 age=3;
  12. UserInfo UserInfo=4;// 支持嵌套
  13. PhoneType type=5;
  14. repeated string hobby=6;// 可重复,生成为切片格式
  15. }
  16. message UserInfo{
  17. string name=1;
  18. int32 age=2;
  19. }
  20. // 枚举类型
  21. enum PhoneType{
  22. MOBILE=0;// 默认
  23. HOME=1;
  24. WORK=2;
  25. }

4. 编译.proto文件为Go文件

  1. // 参数1:在某路径生成文件
  2. // 参数2:需要编译的文件
  3. protoc --go_out=./ *.proto

BLOG

搜索文章