现在的架构基本都是使用微服务的,而网关作为微服务的统一门户在架构模式中用得越来越多,API网关是所有客户端的单一入口点。
API网关模式是微服务体系结构的一个很好的起点,因为它能够将特定的请求路由到我们从整体上分离的不同服务。事实上,API网关并不是我们的新概念。到目前为止,我们一直在使用。Nginx作为API网关在我们的整块应用程序前面,但是我们希望在微服务转换的背景下重新评估我们的决定。
我们关心的性能,易于扩展性和额外的能力,如速率限制。第一步是评估在重载下的备选方案的性能,以确保它们的规模足以满足我们的需要。
在这篇博客文章中,我们将解释如何设置测试环境并比较下面API网关的性能:
- Zuul
- Nginx
- SpringCloud Gateway
- Linkerd
事实上,我们还有其他选择,比如[Envoy和[UnderTow..我们将使用这些工具进行类似的测试,并在的博客文章中分享结果
Zuul视乎还是挺好的,因为它是用Java开发的,并且有Spring框架的强大支持。已经有一些博客文章比较ZUUL和NGIXX,但我们也想评估Spring cloud gateway和Linkerd的性能。此外,我们计划进行进一步的负载测试,所以我们决定设置自己的测试任务。
我们首先安装NGIX到AWS EC2 T2微实例,根据官方的NGNX文档。这个环境是我们的初始测试环境,并且我们将ZUUL和Spring cloud Gatewa