首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原grpc与原grpc的区别

原grpc与原grpc的区别
EN

Stack Overflow用户
提问于 2020-11-13 21:07:52
回答 1查看 4.1K关注 0票数 12

我对protoc-gen-goprotoc-gen-go-grpc之间的关系有点困惑。我知道:

  • protoc-gen-go包含用于序列化/反序列化原型消息的代码。
  • protoc-gen-go-grpc包含gRPC服务器和客户端的代码

但是,我使用以下命令

代码语言:javascript
复制
protoc -I $protodir --go_out=plugins=grpc:./genproto/ $protodir/v1/foo.proto

生成的foo.pb.go包含用于消息序列化的代码和用于gRPC服务器/客户端的。另外,我只在我的系统上安装了protoc-gen-go

我觉得这是在GO中做gRPC的老方法,而new-wayprotoc --go_out=. --go-grpc_out=.的。

问题:

  1. 为什么这只适用于protoc --go_out=. (为什么它还生成gRPC客户机/服务器代码?)
  2. 使用一种方法与另一种方法相比有什么好处?

谢谢你,DC

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-15 19:46:07

旧式正在使用github.com/golang/protobuf模块.它附带了protoc-gen-go,它生成原型消息的序列化和grpc代码(当使用--go_out=plugins=grpc时)。

所谓的新方法正在使用google.golang.org/protobuf模块=对用于协议缓冲区的Go绑定的主要修订。它附带了一个不同的protoc-gen-go,不再支持生成gRPC服务定义。对于gRPC代码,Go gRPC项目开发了一个名为protoc-gen-go-grpc的新插件。不建议使用plugins标志,它提供了以旧方式调用gRPC代码生成器的方法。

重要注意:用户应该努力在运行时库和用于生成Go绑定的plugin Go插件中使用相同的版本。

更长的答案是论堆叠溢出

发行说明也解释了这一点。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64828054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档