提问者:小点点

单个大型网络应用程序还是多个小型网络应用程序?[关闭]


想改进这个问题吗 通过编辑这篇文章,更新问题,以便用事实和引文来回答。

我有一个网站,由大约20个Java Web应用程序(基于Servlet/JSP的Web应用程序)组成,大小不一,每个应用程序处理网站的不同区域。

所有20个war的总大小为350mb,然而,通过将它们结合起来,我预计最终能够减少这一大小,并实现组合缓存的好处。

最好将它们分开,还是将它们合并到一个Uber webapp war文件中?(以及原因)

我特别想知道合并它们的任何技术缺点。


共2个答案

匿名用户

我“投票”将其合并。

>

  • 代码共享:如果您将它们组合在一起,您可以在它们之间共享代码(因为只有一个代码)<这不仅仅适用于您的代码,它还适用于您使用的所有外部库,我认为这将是更大的收益。

    更少的内存:组合还需要更少的内存(可能非常重要),因为多个应用程序使用的外部库只需加载一次。

    可维护性:此外,如果您更改代码库或数据库中的某些内容,您只需在一个地方更改它并仅重新部署一个应用程序。

    更容易的同步:例如,如果单独的应用程序在数据库中执行一些关键的操作,那么与所有内容都在一个应用程序中的情况相比,同步它们就更难了。

    代码的不同部分/模块之间更轻松的协作。如果它们组合在一起,您可以简单地调用其他模块的方法。如果它们位于不同的Web应用程序中,您必须以肮脏的方式进行,例如HTTP调用、RMI等。

    >

  • 它会更大(显然)。如果你担心它太大,只需将库从部署战中排除,将其放在tomcat库下。

    不同的应用程序可能使用同一库的不同版本。但是最好尽早整理它们,因为这样可以更容易、更少的工作完成。

    另一个缺点是部署时间较长。同样,“外包”LIB可以帮助加快速度。

  • 匿名用户

    在单个文件中使用时,在大小、内存问题或性能方面没有缺点,因为系统每天都在加快。正如你所说,在不同的应用程序或同一个应用程序中运行,所消耗的总资源在处理或计算能力方面是相同的。现在是维护和管理问题,决定保留一个或多个。如果您有多个模块,它们可能会频繁地相互独立地更改,那么最好有多个webapp,通过RMI或WS-calls进行对话,以实现内部通信(如果需要)。如果所有这些都作为一个单元来定位,那么一切都会立即发生变化,您可以使用单个应用程序。拥有多个应用程序将有助于根据模块级功能的变化轻松安装和更新每个应用程序

    将多个应用程序部署到Tomcat

    http://www.coderanch.com/t/471496/Tomcat/Deploying-multiple-applications-WAR

    希望有帮助