通用 gRPC Java 客户端 - 现有实现

3
我正在寻找一种在Java中实现通用gRPC客户端的方法,该客户端允许提供.proto定义(或至少依赖于生成的grpc类)、服务和方法名称作为参数执行调用。
也许你可以建议是否有任何现有的库/框架包含在Java中实现了这样的客户端解决方案?
我只能找到Apache Camel中的这一个:https://github.com/apache/camel/blob/master/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcProducer.java。它依赖于生成的grpc类,并使用实用程序方法查找必要的存根实现,使用服务名称+提供的方法 https://github.com/apache/camel/blob/master/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcUtils.java
并且还有这篇文章,如何直接从protobuf创建GRPC客户端而不将其编译为java代码,但是这个实现使用的是ServerReflectionGrpc,这不是我要找的。

你知道其他任何现有的通用Java gRPC客户端实现吗?或者可能有一个不错的实现方法吗?非常感谢!


你能解释一下为什么你想要这个吗? - undefined
有一个自定义的工作流引擎,目前支持HTTP调用,客户可以配置URL/头部/重试选项。现在需要扩展以支持gRPC调用。这样,工作流引擎的用户可以指定gRPC主机/端口、服务名称/操作,并进行调用。工作流引擎本身对客户端的.proto类型一无所知。 - undefined
1
你可能对https://github.com/grpc/grpc-java/compare/v1.6.1...ejona86:grpc-proxy感兴趣,它只将消息视为不透明的字节。此外,不要忽视“如何直接从protobuf创建GRPC客户端而无需将其编译为Java代码”,因为服务器反射基本上只是获取“描述符”(以二进制proto编码的.proto文件)的一种可能方式。生成的代码也有它们;如果已经有生成的代码可用,那么你基本上只需要少一步。 - undefined
谢谢你,Eric!只是希望这是一个相当常见的使用情况,并且已经有一些可插拔的开箱即用解决方案 :) - undefined
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接