微服务API Gateway性能测试报告:Kong性能最优

微服务架构中加入API Gateway(API网关)作用

一般也会把路由,安全,限流,缓存,日志,监控,重试,熔断等都放到 API 网关来做,然后服务层就完全脱离这些东西,纯粹的做业务,也能够很好的保证业务代码的干净,不用关心安全,压力等方面的问题。

QQ20190128-122404@2x

可选方案:

  • Zuul: Netflix Zuul,作为Spring cloud 中的一员,作为其中的api gateway,为服务架构提供前置保护作用。属于Spring cloud体系中,所以基于Java, Spring boot ,可以更好的集成到系统中。
  • Kong: Kong 是一个现成 的 api gateway 的解决方案,它在 nginx 上进行了开发。

本文主要根据以上二种方案进行压力测试,选择哪种方案会在生产环境中更好?

压力测试方案我们采用Spring Cloud Gateway Benchmark作为基础方案,该方案开源源码查看如下地址:https://github.com/exceedzhang/spring-cloud-gateway-bench,方案wrt和Jmeter测试4种部署在同一服务器上的4种不同网关,如下图所示:

根据官方测试结论增加geteway后性能会大幅下降,Spring Cloud Gateway性能最优,表现最好。

QQ20190128-115041@2x

经过我们测试之后发现,官方结论基本正确。Spring Cloud Gateway性能最优、稳定性最好,但和Zuul性能差距相差并不如官方描述如此巨大。具体参考我们的测试结果如下图所示:

QQ20190125-115901@2x

QQ20190125-120137@2x

QQ20190125-130332@2x

在这个项目基础上我们又测试Kong网关,还是访问no proxy(8000) web server,Kong网关监听80端口再转发到8000端口。测试结论:使用Kong网关几乎没有任何性能消耗,性能到1600次/秒,增加安全鉴权后访问也没有明显性能下降。Kong提供路由、日志、均衡负载、性能监控、安全机制已符合API Gateway功能要求,同时性能比Spring Cloud Gateway至少提供数倍。因此在生产环境中选用Kong,在开发环境中使用Spring Cloud Gateway。开发环境中工程师通过配置可以方便控制服务路由,而不需要再重新搭建Kong的环境时间API Gateway,2者结合可以使用。

QQ20190125-143936@2x

小工蚁新零售平台部署架构图如下图所示:

QQ20190128-122634@2x

 

 

推荐文章

沪公网安备 31010702002009号