【发布时间】:2021-02-25 21:11:23
【问题描述】:
我对 protoc-gen-go 和 protoc-gen-go-grpc 有点困惑。我知道:
-
protoc-gen-go包含用于序列化/反序列化 protobuf 消息的代码 -
protoc-gen-go-grpc包含 gRPC 服务器和客户端的代码
但是,我正在使用以下命令
protoc -I $protodir --go_out=plugins=grpc:./genproto/ $protodir/v1/foo.proto
生成的foo.pb.go 包含消息序列化代码和 gRPC 服务器/客户端。另外,我的系统上只安装了protoc-gen-go。
我觉得这是 在 GO 中执行 gRPC 的旧方法,而 新方法 是 protoc --go_out=. --go-grpc_out=.
问题:
- 为什么这只能使用
protoc --go_out=.(为什么它还会生成 gRPC 客户端/服务器代码?) - 使用一种方法与另一种方法相比有什么优势?
谢谢, 直流
【问题讨论】:
标签: grpc-go