0

我们目前运行一个 Java 后端,我们希望摆脱它并切换到在 AWS Lambda 和无服务器上运行的 Node。

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

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

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

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

4

1 回答 1

0

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

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

在考虑基于 Lambda 的架构时,务必考虑 Lambda 函数中没有任何可能的状态。这比我们通常谈论的无状态服务更进了一步;他们通常针对不再存在的“客户状态”。但是 Lambda 函数不能有任何状态,因此例如持久的数据库连接池是不可能的。尽管存在所有缺点,但还有很多您不必处理的东西可能非常有益,尤其是在可扩展性方面。

于 2017-04-13T21:03:10.073 回答