2016-03-28 2 views
1

Ich überlege, mit gRPC eine b2b API zu implementieren, und ich kann nicht recht herausfinden, ob gRPC Server auf einem anderen Webserver mit http/2 Unterstützung laufen kann?Kann der gRPC-Server auf einem anderen HTTP/2-Webserver wie Jetty basieren?

In den Beispielen, die auf der offiziellen Website zur Verfügung gestellt werden, läuft die gRPC-API immer auf ihrem internen netty-basierten Server auf einem bestimmten Port.

Also, wenn wir sagen, ich habe mehrere gRPC-Anwendungen sieht es so aus, als müsste ich sie auf separaten Ports ausführen.

Aber ich hätte gerne einen einzigen API-Einstiegspunkt (ein Webserver wie Jetty auf einem einzelnen Port 443), der die URLs verwalten und sie der bestimmten gRPC-Service-Implementierung zuordnen würde.

Ist es mit gRPC möglich?

Danke.

Antwort

2

Nein, grpc-java kann nicht auf RPCs als Servlet reagieren.

Servlet-Container, die HTTP/2 unterstützen, sind sehr neu und gRPC hat sie noch nicht untersucht. Es scheint möglich, die asynchronen Servlet-APIs zu verwenden, um einen gRPC-Server (als Alternative zum Netty-Server) zu implementieren, außer möglicherweise für Trailer. Es ist nicht 100% klar, wie Trailer gesendet werden, wenn der Server HTTP/2 ist, da eine übliche Technik mit HTTP/1 für das Servlet war, die Chunked-Codierung manuell durchzuführen, die in HTTP/2 nicht existiert. In jedem Fall ist es nicht implementiert.

Edit: Ein issue ist jetzt GitHub geöffnet.

Verwandte Themen