gpt4 book ai didi

java - 哪个是可扩展的?与 REST 服务对话的简单 CRUD Web 应用程序与 Web 应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:03:48 26 4
gpt4 key购买 nike

我觉得标题说得很清楚了。我不是可扩展性大师。我即将创建一个 Web 应用程序,它需要扩展到大型数据集并且可能有很多(这里不会夸大,假设有数千个)并发用户。

MongoDB是数据存储库,我在编写一个简单的 Play! 之间左右为难。 webapp 与 MongoDB 交谈与 Play!应用程序与 REST 服务应用程序(在 Scala 中)对话,后者负责所有业务逻辑和持久性的繁重工作。

我的一部分认为将业务逻辑包装为服务是面向 future 的,并且允许在多个节点中仅部署 webapp(缩放)。我来自 Java EE 堆栈和 Play!是 Java Web 框架的反叛者。这种方法让我确信我可以远离 Play!如果需要的话。

我的一部分也认为玩!应用程序 + Scala 服务应用程序更加复杂,从长远来看可能不会有成果。

如有任何建议,我们将不胜感激。

注意:我是 Scala、MongoDB 和 Play! 的新手。如果我的问题很愚蠢,请原谅我。

最佳答案

可扩展性是一门工程艺术。这意味着您有很多参数并将您的经验应用于这些参数的特定值以得出解决方案。因此,如果没有关于您的问题的更具体数据,一般性建议是很难的。

话虽如此,根据经验,一些一般性建议:

  • 让您的申请尽可能简洁明了。这使您可以保持选择余地。对于您的情况,请从一个简单的 Play 应用开始。专注于干净的代码,这样您就可以轻松地将您拥有的东西改造成不同的架构模型(使用干净的代码,这比您想象的要简单 :-))
  • 衡量而不是猜测瓶颈在哪里。用请求淹没服务器很简单。使用分析、内存转储等方式来查明您在可扩展性方面的瓶颈。

只有到那时,有了可用的应用程序(您可以提前启动它)和关于扩展瓶颈所在位置的数据,您才能决定在(水平可扩展的)服务中拆分哪些内容。

一开始,服务看起来不错且可扩展,但它们通常会让您一早陷入困境 - 服务需要相互通信,因此您开始引入消息传递等。保持简单、衡量、优化。

关于java - 哪个是可扩展的?与 REST 服务对话的简单 CRUD Web 应用程序与 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6656603/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com