Both Zuul and kong serve as a good API gateway layer in a microservices architecture. What are some important differences between these two?
Istio is an open platform for providing a uniform way to integrate microservices, Istio's control plane provides an abstraction layer over the underlying cluster management platform, such as Kubernetes, Mesos, etc. ... nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy.
It provides a single entry to our system, which allows a browser, mobile app, or other user interface to consume services from multiple hosts without managing cross-origin resource sharing (CORS) and authentication for each one. Netflix uses Zuul for the following: Authentication. Insights.
Zuul 1. x is Servlet 2. x-based and, therefore, is blocking in nature. Each request into Zuul occupies a single container thread, which limits the number of concurrent requests that can be handled to the number of worker threads available in your app container.
The Kong Server, built on top of NGINX, is the server that will actually process the API requests and execute the configured plugins to provide additional functionalities to the underlying APIs before proxying the request upstream. for proxying. This is where Kong listens for HTTP traffic.
For those looking into some numbers, this is a great post of comparing the different solutions out there.
I've been implementing some cross-cutting concerns at the API Gateway level and we are using Kong. However, I think some of the libraries provided by Kong to write plugins in Lua are not as mature and solid as something written in Java for example. Lack of documentation, difficult to debug, among other problems related to scripting languages.
There are some good notes on the performance of using Netflix's Zuul versus the wrapper provided by Spring Cloud. So it might be good to take a look at those problems listed in there.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With