以下是学习笔记目录:
文章目录
protobuf 简介
微服务很流行,go语言也很流行,这两者加起来的grpc服务也很流行。其中 grpc 使用的是ProtoBuf 作为内容传输中间件,看下它的说明:
protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。
Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法
它对比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。
看样子确实很厉害!
0. protobuf 安装
protobuf 的安装很简单,如果是Mac的话,一条命令就搞定了:
brew install protobuf
如果是其他系统,请参考官方文档,也很简单。
安装好的服务,命令执行的关键字是 protoc xx xx xx
。
首先,这是我的例子的目录结构:
/Users/smallyang/www/gowww/go-grpc-example
├── client
├── go.mod
├── go.sum
├── main.go
├── proto
│ ├── hello.proto
│ └── server.proto
└── server.go
其中proto
是我用来存放*.proto
文件的文件夹目录名。
1. -proto_path (-I)选项
protoc --proto_path=proto --go_out=. proto/hello.proto
--proto_path
可以简写为-I
,表示读取*.proto文件的目录
, 可以是绝对路径,也可是是相对路径,如果这个选项不指定,那么就会读取protoc
命令执行时候的当前的目录。注意=左右都不能有空格
比如:
protoc -I=/Users/smallyang/www/gowww/go-grpc-example/proto --go_out=. hello.proto
<