代码之家  ›  专栏  ›  技术社区  ›  Crollster

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

  •  3
  • Crollster  · 技术社区  · 10 年前

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

    所有20场战争的总规模为350mb,但通过将它们结合起来,我预计最终能够减少这一规模,并实现组合缓存的好处。

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

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

    2 回复  |  直到 10 年前
        1
  •  1
  •   icza    10 年前

    我“投票”将它们结合起来。

    赞成的意见

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

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

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

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

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

    欺骗

    • 它会更大(显然)。如果您担心它太大,只需将libs排除在部署战之外,将其置于tomcat libs之下。

    • 不同的应用程序可能使用同一库的不同版本。但是,如果可以更轻松、工作量更少的话,最好早点把它们整理好。

    • 另一个缺点是部署时间较长。同样,“外包”libs有助于加快速度。

        2
  •  1
  •   Community CDub    8 年前

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

    deploying multiple applications to Tomcat

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

    希望有帮助