首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FarmWarDeployer部署webapps 7集群

使用FarmWarDeployer部署webapps 7集群
EN

Stack Overflow用户
提问于 2014-08-12 15:18:14
回答 2查看 2.7K关注 0票数 1

我构建了一个带有两个节点的tomcat集群。我将集群部署程序FarmWarDeployer配置为监视war文件的目录。如果启动了这两个节点,所有这些都可以正常工作:在node1中部署war监视dir将把war文件发送到node2。但是,如果在node2关闭时完成了监视目录中war文件的副本,则node2将不会接收新的war文件。

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

EN

回答 2

Stack Overflow用户

发布于 2014-08-12 19:10:57

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

我认为您可以在重新启动下线节点并触发另一个部署之后运行touch <your-war-file>。或者,由于您有一个小型集群,因此您可以在重新启动WAR文件之前手动将其复制到下线节点。然后,当节点重新启动时,它将是最新的。

除此之外,我建议考虑另一种部署WAR文件的方法。一些适用于小型集群的快速建议:

  1. 将WAR文件复制到共享存储(即挂载到两个节点)。将cron作业或小型后台任务添加到监视共享存储挂载的每个节点,当找到新文件时,将其部署(即复制到webapps目录)。不要直接从共享存储中部署,这是自找麻烦。
  2. 使用scp或类似工具将WAR文件复制到节点。使用类似的cron作业或后台任务来获取上传的文件并进行部署。

对于更大的安装,您可以考虑使用一个部署工具,如Puppet、Chef、Ansible或其他类似的技术。实际上,您可以使用这些来进行更小的安装,这可能太过了。

票数 1
EN

Stack Overflow用户

发布于 2018-12-19 02:39:24

我使用下面的配置,rem在里面嵌套。(您的集群必须首先工作,我使用单播群集)。

代码语言:javascript
复制
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/var/tmp/war-tmp/" deployDir="/usr/local/tomcat8053/webapps/" watchDir="/var/tmp/war-watch/" watchEnabled="true" processDeployFrequency="1" />

对集群中的每个其他节点重复配置,但是设置watchEnabled="false“,然后刷新,即使要重新复制watchDir中的war文件。给主机节点一些时间,它将部署并部署到其他节点。对于prod,可能需要设置processDeployFrequency="2"以减少监视频率。

希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25268086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档