我正在考虑将 gRPC 用于 b2b API,但我无法确定 gRPC 服务器是否可以在另一个支持 http2 的 Web 服务器之上运行?
在官方网站上提供的示例中,gRPC API 始终在其内部基于 netty 的服务器上的特定端口上运行。
所以,如果假设我有几个 gRPC 应用程序,看起来我必须在不同的端口上运行它们。
但我希望有一个 API 入口点(一个 Web 服务器,如单个端口 443 上的码头)来管理 URL 并将它们映射到特定的 gRPC 服务实现。
gRPC可以吗?
不,grpc-java 不能作为 servlet 响应 RPC。
支持 HTTP/2 的 Servlet 容器非常新,gRPC 还没有对它们进行太多研究。使用异步 servlet API 来实现 gRPC 服务器(作为 Netty 服务器的替代方案)似乎是可行的,但可能用于预告片。当服务器是 HTTP/2 时,如何发送预告片并不是 100% 清楚的,因为 HTTP/1 的一种常见技术是让 servlet 手动执行 HTTP/2 中不存在的分块编码。在任何情况下,它都没有实现。
编辑:一个问题现在打开了 GitHub。