java - 使用 FarmWarDeployer 部署 webapps tomcat 7 集群

标签 java tomcat cluster-computing

我构建了一个具有 2 个节点的 tomcat 集群。我将集群部署程序 FarmWarDeployer 配置为监视 war 文件的目录。 如果启动了 2 个节点,一切正常:在 node1 中的 watch 目录上部署 war 会将 war 文件发送到 node2。 但是,如果在 node2 宕机时复制 watch 目录中的 war 文件,则 node2 不会收到新的 war 文件。

是否有任何配置让节点检查新的war filese并在启动时接收它?

最佳答案

我不相信这是可能的。据我了解,FarmWarDeployer 监听在找到新的 WAR 文件或需要取消部署 WAR 时发送的集群消息。如果集群中的一个节点出现故障,它将丢失这些消息。

我想你可以运行 touch <your-war-file>在关闭的节点重新启动并触发另一个部署之后。或者,由于您有一个小型集群,您可以在重新启动之前手动将 WAR 文件复制到已关闭的节点。然后该节点在重新启动时将是最新的。

除此之外,我建议寻找一种不同的方式来部署您的 WAR 文件。一些适用于小型集群的快速建议:

  1. 将 WAR 文件复制到共享存储(即安装到两个节点)。将 cron 作业或小型后台任务添加到监视共享存储安装的每个节点,并在找到新文件时部署它(即复制到 webapps 目录)。 不要直接从共享存储进行部署,那是自找麻烦。

  2. 使用 scp 或类似工具将 WAR 文件复制到您的节点。使用类似的 cron 作业或后台任务来获取上传的文件并进行部署。

对于大型安装,您可以考虑使用 Puppet、Chef、Ansible 或其他类似技术等部署工具。确实,您可以将它们用于较小的安装,但可能有点矫枉过正

关于java - 使用 FarmWarDeployer 部署 webapps tomcat 7 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25268086/

相关文章:

java - Eclipse 未将 'Web Content' 部署到根文件夹

tomcat - 在 Websphere Application Server 9.0 中为 SSO 生成 Ltpa token

java - 如何在 hadoop 的单节点集群中运行 Java 程序?我是否需要将我的 java 代码转换为 JAR 文件然后执行?

java - 流畅的语法和继承

Java - 每第四个空格分割输入流

java - 将对列表转换为分组对列表

java - Apache Camel,客户端证书

java - 使用tomcat上传文件

linux - 为什么密码少 ssh 不工作?

performance - 有没有办法通过 Hadoop 集群进行分布式文件下载?