1

我对软件部署有疑问。我们正在使用 JBoss 4.2.3。

请让我解释一下我现在正在做的典型手动部署过程:

  1. 将 EAR、WAR 和 JAR 复制到服务器。
  2. 停止服务器。
  3. 将 EAR、WAR 和 JAR 复制到部署文件夹。
  4. 运行数据库更新脚本。
  5. 启动服务器。

我正在寻找一种避免服务器重启的方法。因为它造成了很多问题和很多不便。例如,为了安排服务器停机时间,我必须向一个大列表发送电子邮件。

另一个问题是,我们有 2 台服务器通过 SOAP 进行远程通信,如果一台服务器出现故障,很可能会导致一些数据同步问题。

热部署并没有真正为我工作。有时我遇到类加载器异常,有时还有缓存问题。

我正在考虑集群,但不太确定它是否有效。

有没有人有类似的经历?有什么解决方案或建议吗?

提前谢谢了。

ps 我应该将它发布在 serverfault 上而不是 stackoverflow 上吗?(我更喜欢这里,因为我是开发人员 :)

4

1 回答 1

3

如果热部署对您不起作用,并且重新启动不是一种选择,那么我可以建议的唯一另一件事是使用故障转移进行集群 - 运行两台服务器而不是一台,您的 SOAP 请求在它们之间进行负载平衡。当您需要执行升级时,您关闭一台服务器,升级,启动它,关闭第二台服务器,升级它,然后重新启动它。

如果你做得对(这很棘手,但可行),那么你就没有停机时间。您必须确保服务器可以在滚动升级期间共存,并确保您的数据库升级是向后兼容的,但这一切都可以实现。

于 2010-12-06T23:53:37.407 回答