我正在创建一个Spring Server,不幸的是,它必须在下周"开播",而且无法再关闭。我有几个问题:
- 我可以在服务器运行时操作/更新Java类吗
- 在服务器运行时,我是否可以操作/更新HTML页面
- 如果这是不可能的,如果我必须关闭服务器并用更新重新启动它,我如何保留我的数据库
- 你会以JavaApplication、JettyRun、Maven、Gradle或其他方式运行它吗
您应该有2台服务器,并在它们前面放置一个负载均衡器,在更新时,您可以将所有内容路由到一台服务器,然后重新启动另一台服务器。
关于您的问题:
-
我认为没有一种简单而标准的方法可以做到这一点。编辑:但是,如果你使用的是网络容器,其中一些容器,比如tomcat支持在不关闭服务器的情况下进行更新(重新部署)。你可能仍然会造成一些交通堵塞。请阅读:Tomcat Docs
-
大多数web容器都支持这一点,所以我想我的答案是肯定的。
-
数据库正在使用磁盘。重新启动将保持一切正常,而且,很少需要重新启动数据库。
-
Maven和Gradle更多地用于构建/测试,而不是运行真正部署的应用程序,所以我将排除这些可能性。
祝你好运!
您可以在不需要重新启动的情况下部署分解的应用程序,这样您就可以在运行时更改类和html页面中的方法,但这看起来像是在攻击您的应用程序。如果添加新的class+html页面或更改类中的字段,则它不起作用,还会导致应用程序失效。