In microservices architecture, API gateway is one of the essential components. The following are several high-performance API gateways developed based on Java language.

ZUUL

Zuul is Netflix’s open source microservices gateway. Spring Cloud has integrated and enhanced Zuul. Zuul uses Apache HTTPClient by default, and can also use RestClient or okHttp3.okHttpClient. Zuul’s main functions are routing and forwarding and filters. Zuul uses various filters to achieve the following functions:

Product features

  • Authentication and security identifies each resource that requires authentication and rejects requests that do not meet the requirements
  • Performance monitoring tracks and statistics data at service boundaries to provide an accurate view of production
  • Dynamic routing Dynamically routes requests to back-end clusters as needed
  • Stress testing incrementally increases traffic to the cluster to understand its performance
  • Load unloading allocates capacity for each type of request in advance and automatically discards requests when they exceed capacity
  • Static resource processing returns some responses directly at the boundary

Fizz Gateway

Fizz Gateway is a microservice Gateway developed based on Spring WebFlux. It is capable of hot service orchestration, automatic authorization selection, online service script coding, online testing, high-performance routing, API audit management, and a powerful custom plug-in system that can be self-extended. In addition, it provides a friendly graphical configuration interface to help enterprises quickly implement API service governance, reduce the glue code in the middle layer, reduce the coding input, and improve the stability and security of API services.

Product features

  • Cluster management: Fizz gateway nodes are stateless, automatically synchronize configuration information, and support horizontal node scaling and multi-cluster deployment
  • Service Choreography: Support for hot service choreography capabilities, front-end and back-end coding, and API updates anytime, anywhere
  • Load balancing: Round-robin load balancing is supported
  • Service discovery: Support for back-end server discovery from the Eureka registry
  • Configuration center: Supports access to the Apollo configuration center
  • HTTP reverse proxy: hides real back-end services and supports Rest API reverse proxy
  • Access policies: Support different policies to access different apis and configure different authentication
  • IP address blacklist and whitelist: You can configure IP address blacklist and whitelist
  • Custom plug-ins: Powerful plug-in mechanisms support free extension
  • Extensibility: An easy-to-use plug-in mechanism makes it easy to extend functionality
  • High performance: Performance is superior among gateways
  • Versioning: Supports publishing and multiple rollbacks of operations
  • Management background: Configure the gateway cluster on the management background page

Spring cloud gateway

SpringCloud Gateway is a new Project of SpringCloud, which is based on Spring 5.0, Spring Boot 2.0 and Project Reactor technology development Gateway. It aims to provide a simple and effective unified API route management approach for microservices architecture. As a Gateway in the SpringCloud ecosystem, SpringCloud Gateway aims to replace Zuul. In SpringCloud 2.0 and above, there is no integration with the latest high-performance version of Zuul 2.0 and above. This is still an older version of the non-REACTOR schema used prior to Zuul 2.0. In order to improve the performance of the Gateway, SpringCloud Gateway is implemented based on the WebFlux framework, while the bottom layer of the WebFlux framework uses the high performance Reactor model communication framework Netty.

Product features

  • Based on Spring Framework 5, Project Reactor and Spring Boot 2.0
  • Integrated Hystrix circuit breaker
  • Integrate with Spring Cloud DiscoveryClient
  • Predicates and Filters are easy to write for specific routes
  • Advanced gateway functions include dynamic routing, traffic limiting, and path rewriting

Soul

Soul is an asynchronous, high-performance, cross-language, responsive API gateway that provides unified HTTP access, seamless support for Dubbo,Springcloud, and rich plug-ins (stream limiting, fusing, proxy forwarding)

Product features

  • Support various languages (HTTP protocol), support dubbo, SpringCloud protocol
  • Plug-in design idea, plug-in hot plug, easy to expand
  • Flexible flow filtering, can meet all kinds of flow control
  • Built-in rich plug-in support, authentication, limiting, fuses, firewalls and more
  • Dynamic traffic configuration, high performance, gateway consumption in 1~2ms
  • Supports cluster deployment, A/B Test, and blue-green release

Gravitee

Gravitee API gateway is a vert. X based high-performance interface gateway that supports Swagger import interfaces, document management, performance analysis, operation auditing, logging, and load balancing.

Product features

  • REST API: Every operation performed through the Web UI uses an internal REST API
  • One-click deployment: With one click, the API is deployed to each gravitee. IO gateway and ready to use
  • Highly scalable: You can easily add the new Gravitee. IO gateway to the cluster. In addition, the data has been synchronized, so you do not need to waste time to configure
  • Custom policies: Gravitee. IO provides a number of out-of-the-box policies (rate limiting, CORS, IP filtering, and so on). If that’s not enough, you can develop it yourself
  • Health checks: As an API provider, add health checks to your services and provide feedback to your users on the availability of your API