Comments (29)
Is there any plans for supporting gRPC?
from spring-cloud-gateway.
@spencergibb updated url: https://improbable.io/games/blog/grpc-web-moving-past-restjson-towards-type-safe-web-apis
from spring-cloud-gateway.
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
from spring-cloud-gateway.
@BenNeighbour great solution actually
from spring-cloud-gateway.
When #7 is implemented do we see this just working or will there be additional work to make gRPC work via HTTP/2 on SCG?
from spring-cloud-gateway.
This is really the future
from spring-cloud-gateway.
Sounds like a great future improvement!
from spring-cloud-gateway.
I think the only thing that is needed to use gRPC with Spring Cloud Gateway is HTTP2 support #7.
from spring-cloud-gateway.
Any updates?
from spring-cloud-gateway.
No, when there are updates you will see them here.
from spring-cloud-gateway.
It's the future.
from spring-cloud-gateway.
Hello! any news?
from spring-cloud-gateway.
No
from spring-cloud-gateway.
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
from spring-cloud-gateway.
from spring-cloud-gateway.
@spencergibb Are there any solutions or workarounds to my problem that you are aware of?
from spring-cloud-gateway.
No
from spring-cloud-gateway.
Oh okay - but thanks anyway - if I find any workarounds then I'll post them here
from spring-cloud-gateway.
hopefully, spring cloud gateway support gRPC
from spring-cloud-gateway.
@spencergibb Is there any news about grpc gateway?
from spring-cloud-gateway.
from spring-cloud-gateway.
@spencergibb is it something prioritized? please let us know, if not we need to find workaround or alternatives.
from spring-cloud-gateway.
This is blocked by #7
from spring-cloud-gateway.
awaiting good news
from spring-cloud-gateway.
hello, any good news ?
from spring-cloud-gateway.
If you look at the history, this was added in 2021.0.0
from spring-cloud-gateway.
I don't see any mention about it in the documentation except for spring.cloud.gateway.filter.json-to-grpc.enabled
I did build my own implementation for an experiment
from spring-cloud-gateway.
Hey @trajano gRPC support was added a while ago: https://spring.io/blog/2021/12/08/spring-cloud-gateway-and-grpc
Recently, we included a filter to translate from JSON automatically: https://docs.spring.io/spring-cloud-gateway/docs/4.0.0-M5/reference/html/#the-jsontogrpc-gatewayfilter-factory
Let me know if you have any feedback.
from spring-cloud-gateway.
I know it's added a while ago, my comment was that there is no mention of it in the documentation.
from spring-cloud-gateway.
Related Issues (20)
- Predicates with multiple path dont work HOT 1
- [SpringCloudGateway]: Post filters are not executed after endpoint redirection timeout HOT 5
- Reques body is removed from request when accessed (spring-cloud-gateway-mvc) HOT 1
- Spring Cloud Gateway Not able to Match Routes Posting upgrading spring boot from 2.0.1 to 2.6.6 HOT 5
- Missing configuration metadata in Gateway MVC HOT 2
- Document how to register custom predicates and filters for use in Server MVC configuration HOT 2
- GlobalFilter documentation should be update WRT Order HOT 2
- [SpringCloudGateway-webflux]: Read response body (READ-only) in global post filter HOT 5
- Docs: static imports and APIs in MVC samples missing or wrong HOT 1
- Spring cloud gateway mvc can't support Chinese in query parameters HOT 1
- IsoOffsetDateTimeConverter from Boot has illegal package identifier and creates split package with Boot
- Trying to call microservice using subdomain in Url HOT 1
- CorsGatewayFilterApplicationListener Does Not Consider Host Predicate When Configuring Cors For Individual Routes
- Logs in Netty lack ThreadLocals/MDC information HOT 2
- Difference version of ProxyExchange? HOT 2
- I get error when read cached resposne in spring cloud gateway
- reactor.netty.http.client.PrematureCloseException: Connection prematurely closed DURING response HOT 1
- Request body is NULL under ModifyRequestBodyGatewayFilterFactory HOT 2
- Comments and code seem to reveal the intents are not aligned with the implementation
- Client got "NoHttpResponseException: xx.xx.xx.xx:port HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spring-cloud-gateway.