【问题标题】:Using serverless for synchronous RPC microservices使用无服务器同步 RPC 微服务
【发布时间】:2021-03-31 23:34:52
【问题描述】:

假设我有一个 API 网关供第三方在我的系统中创建订单。作为订单创建的一部分,我需要验证我提供的请求模型是否正确——不仅是静态的,而且通过检查外键是否有效——产品 ID 在订单中是否有效,帐户 ID 是否有效。如果不是,我想返回 400 让调用者知道他们传递了一个错误的请求。

我希望做的是创建一个 orders::createOrder lambda 函数,它会并行调用 products::listProducts、accounts::listAccountsForCustomer 和其他微服务来检索验证所需的信息,然后我才高兴在系统中创建订单。此验证需要同步进行,因为它是来自第三方的请求/响应来创建订单。

我通常希望逻辑域 - 客户、产品、订单、帐户是单独的微服务,并且我通常在 API 网关层中有一些逻辑,用于编排/映射到下面的微服务。我一直在读到从 Lambda 调用 Lambda 是个坏主意..

如何在无服务器上正确建模?

【问题讨论】:

    标签: aws-lambda microservices aws-api-gateway serverless-framework serverless


    【解决方案1】:

    对于您的情况,最好将所有这些逻辑保留在一个 lambda 中。将其拆分为多个较小的功能会增加延迟,因此您的用户体验会更差,并且由于您有多个功能正在运行,您的成本会成倍增加。如果您想要这样的拆分,您也可以尝试 Step Functions。但它也很贵,我不建议在这种简单的情况下使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      • 1970-01-01
      • 2022-07-17
      • 1970-01-01
      • 1970-01-01
      • 2018-11-26
      • 1970-01-01
      相关资源
      最近更新 更多