(我相信这个问题主要是关于 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/