java - 从这个 .proto 文件生成代码后,这个特定的函数是如何产生的?

标签 java protocol-buffers grpc

(我相信这个问题主要是关于 Protocol Buffer ,而不是 gRPC,但我可能是错的。)

有一个 .proto 文件作为 Helm 项目的一部分存在:https://github.com/kubernetes/helm/blob/v2.5.0/_proto/hapi/rudder/rudder.proto

作为 Helm 构建过程的一部分,这里生成了一个 Go 绑定(bind)(他们将其 checkin ,但它是生成的,即不是以任何方式手动编辑的): https://github.com/kubernetes/helm/blob/v2.5.0/pkg/proto/hapi/rudder/rudder.pb.go

我对此功能有疑问:https://github.com/kubernetes/helm/blob/v2.5.0/pkg/proto/hapi/rudder/rudder.pb.go#L536

给定上面引用的 .proto 文件,该函数是如何产生的?

对于背景,我已经完成了 Java 等效操作( generated bindings in Java 而不是 Go,使用相同的 .proto 文件)。如果重要的话,您可以在此处查看执行此操作的 pom.xml 部分: https://github.com/microbean/microbean-helm/blob/microbean-helm-2.5.0.0/pom.xml#L290-L310鉴于我使用基本相同的配方从相同的源生成,为什么没有生成类似的 Java 方法?

最佳答案

gRPC Java API 只是略有不同。而不是调用:

rudder.RegisterReleaseModuleServiceServer(myGrpcServer, myReleaseModuleService)

您调用io.grpc.ServerBuilder上的方法:

ServerBuilder sb = myGrpcServerBuilder.addService(myReleaseModuleService);

生成的代码implements BindableService构建器使用它来配置服务以提供服务。

关于java - 从这个 .proto 文件生成代码后,这个特定的函数是如何产生的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45110396/

相关文章:

java - 在 ConcurrentHashMap 中存储复杂对象

具有 bazel 构建的 protobuf 依赖项的 Google 云函数

c# - 如何在 gRPC 和 ASP Net Core 3.0 中使用 ssl 证书?

python-3.x - Docker容器内部grpc客户端既未收到响应也未收到状态

java - 使用 Storm 爬虫对每个域进行不同设置(例如速度)的特定于域的爬行

java - 如何在 Hibernate 中用 TableGenerator 替换已弃用的 MultipleHiLoPerTableGenerator

java - 安卓。如何在不创建新 Activity 的情况下开始 Activity ?

java - 如何将 proto3 消息序列化为数组

protocol-buffers - 最大序列化 Protobuf 消息大小

python - 在 Python 服务器中读取 gRPC 元数据