AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 429075
Accepted
Dr I
Dr I
Asked: 2012-09-18 04:23:30 +0800 CST2012-09-18 04:23:30 +0800 CST 2012-09-18 04:23:30 +0800 CST

Tomcat 7.0 集群 FarmWarDeployer 不工作

  • 772

我目前正在为 Q&A 开发 Tomcat 集群,但不幸的是,似乎在该集群中自动部署 war 根本不起作用。

我知道集群运行良好,因为每台服务器都正确接收多播通信,并立即意识到任何丢失的主机。

这里的问题来自 FarmWarDeployer 函数,它似乎不起作用。

实际上,当我使用 tomcat 管理器或简单的 SFTPd 推送在我的集群的节点 1 上上传战争时,战争被节点 1 解压缩并使用,但是,它没有发送到我的节点 2。相反,我的节点 1是说:

警告:管理器 [localhost#/APPTest##1.0.0]:没有上下文管理器在 12 年 9 月 14 日下午 5:21 发送,在 103 毫秒内收到。

我的 node2 声称:

警告:上下文管理器不存在:localhost#/APPTest##1.0.0

好吧,如果我手动将应用程序推送到 node2 上,我的 APPTest 已正确设置标签并且集群正在正确接收会话。

所以,关于我,问题来自我的 FarmWarDeployer 设置,它们是:

103     <Engine name="Catalina" defaultHost="localhost">
104
105
106
107         <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
108                  channelSendOptions="8">
109
110           <Manager className="org.apache.catalina.ha.session.DeltaManager"
111                    expireSessionsOnShutdown="false"
112                    notifyListenersOnReplication="true"/>
113
114           <Channel className="org.apache.catalina.tribes.group.GroupChannel">
115             <Membership className="org.apache.catalina.tribes.membership.McastService"
116                         address="224.0.0.1"
117                         port="45564"
118                         frequency="500"
119                         dropTime="3000"/>
120             <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
121                       address="auto"
122                       port="4000"
123                       autoBind="100"
124                       selectorTimeout="5000"
125                       maxThreads="6"/>
126
127             <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
128               <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
129             </Sender>
130             <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
131             <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
132           </Channel>
133
134           <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
135                  filter=""/>
136           <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
137
138           <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
139                     tempDir="/opt/tomcat/temp/"
140                     deployDir="/opt/tomcat/webapps/"
141                     watchDir="/opt/tomcat/webapps/"
142                     watchEnabled="enable"/>
143
144           <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
145           <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
146         </Cluster>
147
148       <Realm className="org.apache.catalina.realm.LockOutRealm">
149         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
150                resourceName="UserDatabase"/>
151       </Realm>
152
153       <Host name="localhost"  appBase="webapps"
154             unpackWARs="true" autoDeploy="true">
155       </Host>
156     </Engine>

关于我,对于测试集群来说没有什么太奇怪的了,但我绝对不是 tomcat 专家。

所以,如果有什么问题或遗漏,请告诉我 ;-)

linux
  • 2 2 个回答
  • 2442 Views

2 个回答

  • Voted
  1. user182320
    2013-07-20T11:29:59+08:002013-07-20T11:29:59+08:00

    您的 watchDir 和 deployDir 不应位于同一位置。当 tomcat 看到更改时,它会尝试下载此更改,但由于没有任何内容是即时的,因此会有一个不完整的流。这将导致您在战争部署中看到的错误。如果您尝试直接将 war scp 到部署目录,则可以复制相同的场景。您首先需要在服务器上暂存而不是部署。

    尝试为 watchDir 参数添加另一个目录,然后尝试部署到该目录,所有节点都应该选择它。

    • 1
  2. Best Answer
    Sarwar kamal
    2015-03-31T20:43:07+08:002015-03-31T20:43:07+08:00

    FarmWarDeployer 只能在主机级别集群配置。集群设置移动到<Host>...</Host>. 它对我有用。

    https://tomcat.apache.org/tomcat-7.0-doc/config/cluster-deployer.html

    • 1

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve