常见网关对比
下面对一些主流网关框架的介绍:
- Apiaxle : Nodejs 实现的一个开源API管理平台。
- Api-Umbrella : Ruby 实现的一个开源API管理平台。
- Tyk :Tyk是一个用Go语言实现的开源企业级API网关,它是快速、可扩展和现代的网关,支持 REST、GraphQL、TCP 和 gRPC 协议。Tyk提供了一个API管理平台,其中包括API网关、API分析、开发人员门户和API管理面板。
- Zuul :Zuul是Netflix用Java语言实现的开源服务网关。Zuul 是一个 L7 应用程序网关,提供动态路由、监控、弹性、安全等功能。
- Gateway :Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,用于取代Zuul 1.x。
- Fizz Gateway :Fizz Gateway是一个基于 Java开发的微服务聚合网关,能够实现热服务编排聚合、自动授权选择、线上服务脚本编码、在线测试、高性能路由、API审核管理、回调管理等功能。并且有完整的企业级可立即商用的后台管理系统,并且官方给的基准测试在业务网关中比Gateway好一点;是基于Java研发的,因此可以考虑替换Gateway作为业务网关系统。
- OpenResty :基于 Nginx 和 LuaJIT 的高性能 Web 平台,可扩展为高性能网关。
- Orange :一个基于 OpenResty(Nginx + Lua) 的网关,用于 API 监控和管理。和Kong类似,也是基于OpenResty的一个API网关程序,由国人开发。Orange是一个基础的OpenRestyAPI。除了
Nginx
的流量转发功能外,网关还有API监控
、访问控制(鉴权、WAF)
、流量筛选
、访问限速
、AB测试
、静/动态分流
功能。 - Kong :Kong是一个可扩展的开源API Layer(也称为API网关或API中间件)。Kong 在任何Restful API的前面运行,通过插件扩展,它提供了超越核心平台的额外功能和服务。
- Goku :Goku API Gateway(悟空网关) 是一个基于 Golang 的微服务网关,可实现高性能的动态路由、服务编排、多租户管理、API 访问控制等,也适用于微服务系统下的 API 管理。停止维护后推出新一代悟空网关Apinto,相同环境下,Apinto 比 Nginx、Kong 等产品快约50%,稳定性上也有所优化。
- Apisix :Apache APISIX是一个动态、实时、高性能的 API 网关。APISIX API Gateway 提供了丰富的流量管理功能,例如负载均衡、动态上游、金丝雀发布、熔断、认证、可观察性等。支持OpenResty和Tenengine,设计架构为云原生网关,分为数据面和控制面。
网关分类
目前常见的开源网关大致上按照 语言 分类有如下几类:
- Nginx+lua :OpenResty、Kong、Orange、Abtesting gateway 等
- Java :Zuul/Zuul2、Spring Cloud Gateway、Kaazing KWG、gravitee、Dromara soul 等
- Go :Janus、fagongzi、Grpc-gateway
- Dotnet :Ocelot
- NodeJs :Express Gateway、Micro Gateway
按照 使用数量 、 成熟度 等来划分,主流的有 4 个:
- OpenResty
- Kong、 Apisix ( 流量网关推荐 )
- Zuul/Zuul2
- Spring Cloud Gateway ( 业务网关推荐 )