gRPC服务器可以在其他HTTP / 2 Web服务器(如jetty / undertow / tomcat)上运行吗?

spo*_*boy 5 java tomcat jetty wildfly grpc

我正在考虑将gRPC用于b2b API,但我不太确定gRPC服务器是否可以在另一个支持http2的Web服务器上运行?

在官方站点提供的示例中,gRPC API始终在其内部基于Netty的服务器上的特定端口上运行。

因此,如果说我有几个gRPC应用程序,看起来我不得不在单独的端口上运行它们。

但是我想拥有一个API入口点(一个Web服务器,例如在单个端口443上的码头),该入口点将管理URL并将它们映射到特定的gRPC服务实现。

gRPC是否可能?

Eri*_*son 4

不,grpc-java 无法作为 servlet 响应 RPC。

支持 HTTP/2 的 Servlet 容器非常新,gRPC 还没有对它们进行太多研究。使用异步 Servlet API 来实现 gRPC 服务器(作为 Netty 服务器的替代方案)似乎确实可行,但预告片可能除外。当服务器是 HTTP/2 时,并不 100% 清楚如何发送预告片,因为 HTTP/1 的常见技术是让 servlet 手动执行 HTTP/2 中不存在的分块编码。无论如何,它都没有实施。

编辑:一个问题现已在 GitHub 上开放。