2013-10-20 32 views
2

没有拐弯抹角打,我将直接进入我的查询:)如何在Apache Server将请求转发给Tomcat之前执行任务?

我实现在有多个虚拟机,WAR文件,并按照配置的系统: - 有一个主VM它运行Apache和Tomcat使用mod_jk进行负载均衡

  • 此主虚拟机还运行Apache Mesos以监视资源并运行任务。此任务被配置为将WAR文件和MySQL数据库转储复制到Mesos从站。

想法是根据可用资源在需要时按比例放大/缩小。例如,当一个新的HTTPRequest进来,并且没有空闲的机器时,Mesos Master将被请求资源并打开一个新的VM。假设这个虚拟机已经配置了Tomcat,MySQL和其他必需的东西;和Mesos任务副本需要WAR文件和数据库正确转储。

我的问题是,Apache收到新的HTTPRequest时,Apache将此请求转发给Tomcat进行服务之前,我们如何执行一些任务(向Mesos请求资源,让VM启动并运行)?

有关更多信息,我使用的是Ubuntu 12.04。

我在httpd.conf中搜索了一些配置,但找不到对这种情况有帮助的配置。

任何帮助将非常感谢!提前致谢!

回答

0

httpd不会将任何请求转发到新的Tomcat实例,直到您告诉httpd Tomcat实例存在。一旦任何监视检测到需要新的Tomcat实例,创建它,等待它启动并修改httpd配置。

+0

谢谢马克的解决方案,我很抱歉迟到的答复!您的解决方案是我最初想到的,但问题是,需要重新启动HTTPD才能加载新的worker/Tomcat实例。这是不可取的。因此,我正在寻找一种可以添加新工人/ Tomcat实例而无需重新启动的解决方案! 谢谢! –

+0

然后,只需使用平稳重启。 –

+0

太棒了!我不知道这种方式。谢谢马克。我必须找到一种动态添加新节点的方法! 要在worker.properties中添加新节点(worker),它只能通过编辑worker.properties来实现,对不对?我想没有可用的API来做到这一点!如果我错了,请纠正我的错误! –

1

Nikhil,你可以使用Marathon来启动你的雄猫并做负载平衡(通过HAProxy)。 Marathon是Mesos框架,适用于Web/app服务器等长时间运行的服务。虽然它不会根据负载自动缩放,但它有一个简单的缩放API。

+0

谢谢你的解决方案superguenter!我检查了马拉松,它非常有趣!这个问题再次与我在之前的评论中提到的马克相似。 HAProxy作为其他服务器,无法重新启动时无法容纳新的负载平衡器服务器。在haproxy.conf中添加条目之后,需要重新启动才能开始使用这个“新创建的节点进行负载平衡”! 谢谢! –

相关问题