1

我在 Tomcat 中部署了一个典型的 Web 应用程序。要求是在更新应用程序时提供增量更新方式而不是全包交付(war 文件)。

例如,一旦我完成了更改 jar 文件、XML 文件和 jpg 文件的错误修复。我将这 3 个文件称为补丁。我应该提供补丁文件。即使客户想要回滚到原始版本,我也必须提供一种回滚补丁的方法。所有的过程都应该是自动的。

从我的角度来看,这个要求没有意义。全包交付是更新 Web 应用程序的简单可靠的方式,我不想介绍复杂且容易出错的更新方式。

你有想法实现增量更新要求吗?谢谢!

4

2 回答 2

1

当您部署 .war 或 .ear 时,应用程序服务器通常会将其解压缩到内部目录中。您可以直接更改此目录中的文件,粒度更细。但是,要使更改始终生效,您需要重新启动服务器。

你的观点确实是完全正确的。如今,文件的大小并没有发挥重要作用,我不认为整个更新有问题。为什么客户对整个更新不满意?

注意:如果他想要的是动态更新,即不重新启动服务器,那么这无论如何都是一个完全不同的问题,而且对于 java 中的生产系统来说几乎是不可能的(但在开发过程中是可行的,使用 JRebel 之类的解决方案)。

于 2012-12-07T10:49:54.183 回答
-1

您可以创建使用 Delta-Sync 协议的 Java 程序,即只需要上传更新的文件。如果您使用过 Dropbox,那么您将非常了解。Dropbox 使用 Delta-Sync 协议来更新文件和同步数据。

无论哪种方式,您都可以通过在客户端(映射到服务器的 WAR 文件夹)和本地计算机上安装并共享该文件夹来使用 Dropbox。然后,每当您更改本地计算机中的文件时,它会自动将这些 CHANGED (PATCH) 文件上传并同步到您的客户端计算机。

于 2012-12-07T06:09:01.457 回答