如何使用 AWS Lambda 和 SOA 构建复杂的应用程序?

How to build complex apps with AWS Lambda and SOA?

我们目前 运行 一个 Java 后端,我们希望将其移出并切换到 AWS Lambda 和无服务器上的节点 运行ning。

理想情况下,在此过程中,我们希望构建一个完全面向服务的架构。

我的问题是,如果我们的前端 angular 应用程序请求当前用户订购的商品以获取该信息,它需要访问三个服务,即用户服务、订单服务和商品服务。

这是否意味着我们需要对这些服务发出三个 get 请求?目前,我们将为该特定请求构建一个端点,然后可以利用数据库连接来获得最佳性能。

我了解 SOA 的好处,但是在执行诸如此类的更复杂请求时我们如何扩展?有什么好的资源可以看看吗?

考虑到你的问题,我建议首先调整你的优先级:你为什么要离开你现在 运行 使用的 Java 后端?你想克服哪些问题?

您在问题中结合了微服务架构和无服务器基础设施的概念。两者可以结合使用,但不是必须的。许多公司都在使用微服务,甚至像 Uber(在 NodeJS 上)这样的大企业,但像 Lambda 这样的无服务器基础设施才刚刚起步。我建议您特别阅读微服务,例如here 是一些不错的文章。您还将找到有关性能和联接的问题的答案。

考虑基于 Lambda 的架构时,确实 认为 Lambda 函数中没有任何可能的状态。这比我们通常谈论的无状态服务更进一步;他们通常针对 'client state' 不再存在的内容。但是 Lambda 函数不能有任何状态,例如持久的数据库连接池是不可能的。对于所有缺点,还有很多您不必处理的东西可能非常有益,尤其是在可伸缩性方面。