【问题标题】:Amazon API Gateway and Spring cloud gateway use caseAmazon API Gateway 和 Spring 云网关用例
【发布时间】:2022-07-23 19:50:31
【问题描述】:

我正在开发一个分布式应用程序项目,其中需要根据在 api 网关上使用服务的客户端进行速率限制和身份验证。我想知道设计网关的最佳解决方案。

我应该使用 Spring Cloud 网关还是 Spring Cloud 函数/AWS Lambda 来创建网关服务?

【问题讨论】:

  • 这个问题并不完全清楚。您的意思是说 Amazon API Gateway 位于您想要限制和身份验证的那些服务的前面吗?您所说的“设计网关”是什么意思?能详细点吗?
  • 设计是指与其他微服务相关的系统设计/架构。是的,API 网关将位于这些服务的前面。
  • 基本上,我希望能够捍卫这些选择。我需要了解这两个选项的用例

标签: aws-lambda microservices aws-api-gateway spring-cloud-gateway spring-cloud-function


【解决方案1】:

我认为使用 AWS API Gateway 会让您的生活更轻松...

使用 AWS API Gateway 的好处是:

  • 它将消除维护、配置、监控和运行 Spring Cloud Gateway 实例的所有运营成本,
  • 它将具有高可用性,具有故障转移功能,
  • 它将为您提供即时功能,例如速率限制、API 密钥、缓存、授权、金丝雀测试、代理、集成映射、环境
  • 它非常便宜(3.50 美元 x MM 请求)。

使用 Spring Cloud Function 的好处:

  • 将您的 API 定义为应用程序代码本身中的代码
  • 利用 Spring 中的生态系统集成,例如,在开发人员的 PC 上本地运行它。

使用 API Gateway 的缺点:

  • 新 API 的部署将比使用 Spring Cloud Gateway 更难(您需要配置每个新资源/方法)
  • 您的成本现在与请求数量相关...如果您有 900.000.000 百万/月的 API,它可能会变得昂贵
  • 供应商锁定

使用 Spring Cloud Function 的缺点:

  • 运营维护成本
  • 单点故障

【讨论】:

  • 谢谢。每百万请求数量的成本也很容易被 Spring Cloud Gateway 的运营成本所抵消
  • 我一直喜欢我的代码与平台无关,但为了高可用性可以牺牲它
【解决方案2】:

您可以使用Amazon API Gateway。 有关请求限制和配额的更多信息,请参阅文档: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html

【讨论】:

  • 我同意,使用 Spring Cloud Function 的好处只是通过将您的功能实现为简单的 Java 函数,以更纯粹的 Java 表示 AWS Lambda 的一种方式。
【解决方案3】:

如果允许的话,我宁愿使用 Istio 网关 Envoy 代理而不是这两种选择。保持我的运营和维护成本极低,无需更改代码。

【讨论】:

    猜你喜欢
    • 2019-07-04
    • 2018-01-16
    • 1970-01-01
    • 2016-12-27
    • 2015-10-10
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    相关资源
    最近更新 更多