java – gRPC服务器可以在另一个HTTP / 2 Web服务器上运行,比如jetty / undertow / tomcat吗?

我正在考虑将gRPC用于b2b API,我无法弄清楚gRPC服务器是否可以在另一个支持http2的Web服务器上运行?

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

所以,如果让我说我有几个gRPC应用程序,看起来我必须在不同的端口上运行它们.

但是我希望有一个API入口点(像单个端口443上的jetty这样的Web服务器)来管理URL并将它们映射到特定的gRPC服务实现.

是否可以使用gRPC?

解决方法:

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

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

编辑:一个issue现在打开GitHub.

上一篇:使用setExtractWar(false)在嵌入式Jetty中加载war会抛出IllegalArgumentException


下一篇:我可以在不使用Apache和shibd的情况下在我的Java Webapp中集成Shibboleth SSO吗?