1. 安装golang for protobuf插件

执行命令 ,目录 $GOPATH/bin 下生成可执行文件 protoc-gen-go

  1. go get -u -v github.com/golang/protobuf/proto
  2. go get -u -v github.com/golang/protobuf/protoc-gen-go

2. proto简单例子

  1. //指定版本 使用protobuf3
  2. syntax="proto3";
  3. //每个 *.proto 文件可以指定 package 作为生成语言的 namespace
  4. package example;
  5. //message 用来定义一个数据结构
  6. //repeated 的使用:被 repeated 标识的字段可以理解为是一个数组
  7. //enum 类型使用:枚举用来表示一定范围内具有相同属性的值
  8. //message 类型的使用: message 在定义过程中是可以声明自己定义的 message 类型
  9. //map 类型的使用:message 定义时可以使用 map 类型
  10. message Person{
  11. int64 age = 1; //年龄
  12. string realname = 2;//真实姓名
  13. string sex = 3;//性别
  14. repeated string vehicle = 4; //上班交通工具 可以有多份工作 string 类型的
  15. enum Skills {
  16. GOLANG = 0;
  17. PYTHON = 1;
  18. JAVA = 2;
  19. RUST = 3;
  20. CPP = 4;
  21. }
  22. Skills skill = 5;//技能 枚举用来表示一定范围内具有相同属性的值
  23. WorkDays workDay = 6;//工作日 message 在定义过程中是可以声明自己定义的 message 类型
  24. map<string, Department> dept = 7;//挂靠部门 map 类型的使用:message 定义时可以使用 map 类型
  25. }
  26. message WorkDays {
  27. int32 day = 1;
  28. }
  29. message Department {
  30. string name = 1;
  31. }

3. 生成pb文件

进入目录执行

  1. protoc --go_out=plugins=grpc:. common.proto