How is Spring Cloud Gateway different from Zuul? - spring-mvc

I have been using Zuul as the edge service and API Gateway. Recently I have noticed that Spring Cloud Platform release Spring Cloud Gateway. What is the difference between the two gateways? Why is the Zuul not extended to support the functionalities in S-C-Gateway? What was the driving factor for a new library altogether? When should it be used?

I am the author of spring cloud gateway. Zuul is built on servlet 2.5 (works with 3.x), using blocking APIs. It doesn't support any long lived connections, like websockets.
Gateway is built on Spring Framework 5, Project Reactor and Spring Boot 2 using non-blocking APIs. Websockets are supported and it's a much better developer experience since it's tightly integrated with Spring.

Related

Micro Services with API Gateway - Ocelot vs Envoy

I have a .NET core based micro service architecture and have several micro services. We chose ocelot as api gateway for routing, aggregation & security implementation. During our architectural discussion it was mentioned that Envoy Api Gateway is also a good option to use but couldn't find any differences between Ocelot & Envoy, it pros and cons like performance, scalability, community support etc...
Can any one help in sharing some insight on which one would be the good option to use for .NET Core applications.

WSO2 API Manager vs Micro Gateway

I am planning to use WSO2 as my API Gateway.
Requirement
We have created .NET Core APIs for our microservices and need to use Gateway for manage APIs.
I am totally confused by whether to use API Manager or WSO2 Micro Gateway or do we need to use both together
Can anyone help me in this regards
WSO2 API Manager is a full life cycle API management solution that also consists of an API Gateway, which serves API requests. However, this API Gateway was not originally designed for the container world. Therefore, this gateway can be a bit bulky for a container.
The solution is the Microgateway, which is designed for the container world. It is very lightweight and container-native. Microgateway can be used with the API manager to manage APIs.
Here[1] you can read more details about when to use each gateway.
[1] https://docs.wso2.com/display/AM260/Overview+of+the+Microgateway

Google Cloud Endpoints: Websockets and JWT

I've been developing a mobile app (iOS) with gRPC via Firebase auth(z). My server is using GKE with the NGinx proxy - so now I'm developing the Web UI for the deeper configuration of a user account. I prefer not to fall back to REST API's, so I was wondering if Google Cloud Endpoints supports websockets, and would it also prevent non-authorised app users from trying to make a request? With websockets I know it's possible, but as I'm tied in with gRPC with Cloud Endpoints, I'm just checking before I fall back to REST API calls (I prefer not to!).
Summary: Does Google Cloud Endpoints support Websockets with JWT auth tokens from Firebase?
Thanks
It looks like ESP supports websockets now, using the "--enable_websocket" flag in the esp config.
Currently, Cloud Endpoints doesn't support WebSockets at all.
Btw, what is your use case for WebSockets? WebSocket won't work with gRPC either. If you just want to talk to your gRPC service from Web UI, transcoding should work. It works with JWT from Firebase auth.
The Google Cloud Endpoints ESP doesn't support websockets.
However, Google Cloud Endpoints have open sourced their Extensible Service Proxy implementation. Internally it's implemented as a custom nginx module. Since Nginx supports websockets, it should be feasible to add support to their nginx:esp module.
But it's definitely out of scope for me. :-)

Camel in ServiceMix which http feature should be used?

I am using Camel inside ServiceMix and I can see that there is a camel-http and a servicemix-http feature, are they the same?
they are different...servicemix-http is a JBI binding component that has nothing to do with Camel. If you are building a Camel based app, then you likely want camel-http to consume from external resources and/or camel-jetty to expose HTTP endpoint (web server features, etc)

Offering EJB to clients using HTTP

I'm developing a server to offer persistence to clients connecting through http. The clients will be based on different technologies: web, iphone and android; that is why I thought of using http in the first place (may be there is a better approach).
In the server I'm using a javaee 6 implementation with EJBs and JPA to achieve my persistence goal and servlets to offer access to the EJBs interfaces to the clients.
The servlets are just dummy proxies, so I'm sure there has to be a framework or a better way of offering my EJB as a service to my clients.
I'm trying to find a way of avoiding all the dummy proxy servlets.
You could implement RESTful Web Services with JAX-RS

Resources