Spring-cloud-gateway: GRPC Gateway

Created on 9 May 2017  路  17Comments  路  Source: spring-cloud/spring-cloud-gateway

Most helpful comment

Is there any plans for supporting gRPC?

All 17 comments

This is really the future

Sounds like a great future improvement!

Is there any plans for supporting gRPC?

I think the only thing that is needed to use gRPC with Spring Cloud Gateway is HTTP2 support #7.

Any updates?

No, when there are updates you will see them here.

It's the future.

Hello! any news?

No

Any news on this? I'm currently using gRPC between all the server-side microservices, as well as a Typescript React app using grpc-web. I am able to have an envoy proxy sit between those microservices and the UI and everything works fine.

However, the only problem here is that the envoy proxy is just proxying straight to a service, but I need it to go through an API Gateway too (for things like filters and authentication) - like Zuul or Spring Cloud Gateway. My guess is that I cannot do this with Zuul because it doesn't support HTTP/2.

Does Spring Cloud Gateway support this and if so, what version do I need to get it working? Thanks.

PS Could anybody recommend another API Gateway that supports this

@spencergibb Are there any solutions or workarounds to my problem that you are aware of?

No

Oh okay - but thanks anyway - if I find any workarounds then I'll post them here

Hey all, I've come up with a potential solution regarding API Gateways in use with gRPC. What I am doing now, is using an NGINX Proxy - which has special filters on it to authenticate as an OAuth 2.0 Client itself, or authenticating with your own custom "Authentication Microservice".

Please note if you are gonna use NGINX, then you'll have to use some form of SSL between the Proxy and the Proxyied Services because HTTP/2 requires SSL to work properly (or so I've read...). Because NGINX is quite a good proxy it enables you to do other good things like set custom headers, rate-limits, D-DOS protection, and more.

An article about use with gRPC and HTTP/2 is here https://www.nginx.com/blog/nginx-1-13-10-grpc/

Also, you can read up about some Authentication & Authorization features in this article https://www.nginx.com/blog/validating-oauth-2-0-access-tokens-nginx/

Also, another thing to add - this is even better when this is all in a Kubernetes Cluster, as you can just reference the already load-balanced hostname for each Spring Cloud service instead of hardcoding it in different environments

@BenNeighbour great solution actually

Was this page helpful?
0 / 5 - 0 ratings

Related issues

spencergibb picture spencergibb  路  36Comments

samtonyclarke picture samtonyclarke  路  68Comments

ryanjbaxter picture ryanjbaxter  路  31Comments

re6exp picture re6exp  路  37Comments

muzuro picture muzuro  路  61Comments