【问题标题】:Breaking down webapp into multiple pieces (tomcat)将 webapp 分解成多个部分(tomcat)
【发布时间】:2009-08-05 22:52:31
【问题描述】:

我有一个大型的单体网络应用程序,每当我对网络应用程序的特定部分进行更改时,我都不得不部署整个应用程序。

我想根据功能将其分解为更小的块(例如,在银行网站中 - 我想将信息内容与网上银行功能分开,所以如果我对网上银行功能进行更改,我只是部署那部分)

这里的挑战是 webapp 中是否存在某些公共元素,例如跨应用程序共享的公共类。

对 webapp 分区的不同方式有什么想法吗?谢谢。

【问题讨论】:

    标签: tomcat web-applications partitioning


    【解决方案1】:

    这不是特定于 tomcat 的,但一般来说,如果您要拆分 Web 应用程序,您会希望通过某种方式在分布式部分之间共享不同的状态。您可以使用数据库或 memcached 存储会话信息来执行此操作,但要确保每个应用程序都可以读取公共会话数据(某些框架将使用密钥来加密会话数据,并且都需要具有相同的密钥才能读取它)。我认为大多数会话信息的 cookie 存储不会以 cookie 无法在应用程序之间正确持久的方式散列。

    按功能分解是最有意义的。看看你可以在哪里分离你的后端代码。如果你有很好的 restful 类型的 url,你可能可以查看你的 URL 来帮助确定好的分区。

    另外,如果你有一个大的静态部分要单独更新,也许应该由 tomcat 以外的东西提供服务。

    对于普通类,您可以将类实现放在您的 tomcat/lib 文件夹中的 jar 中。它们将可供整个服务器使用。它们无法很好地适应您的 Web 上下文(除非您将上下文传递给它们),并且您必须重新启动整个服务器以更新 jar 文件以让 tomcat 重新加载它。

    也许您可以使用接口解决问题,让您在每个分区中获得更多独立性,从而允许它们以某种方式独立编译。也许一些远程方法调用也可以帮助您将常用函数移动到单个 .jar 或 .war 中。

    【讨论】:

    • 感谢丹尼沃。抱歉,我的问题不清楚,会话只是共享实体的一个示例。我正在寻找任何共享的组件,例如整个应用程序使用的类。
    猜你喜欢
    • 2020-07-10
    • 2020-02-08
    • 1970-01-01
    • 2014-01-26
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多