如何在Apache服务器将请求转发给Tomcat之前执行任务?

如何在Apache服务器将请求转发给Tomcat之前执行任务?,apache,tomcat,mesos,Apache,Tomcat,Mesos,不必拐弯抹角,我将直接进入我的问题:) 我正在实施一个系统,其中有多个虚拟机、WAR文件和以下配置: -有一个运行Apache和Tomcat的主VM,配置了mod_jk以实现负载平衡 这个主VM还运行ApacheMesos来监视资源和运行任务。此任务配置为将WAR文件和MySQL数据库转储复制到Mesos从机 其想法是根据可用资源,在需要时扩大/缩小规模。例如,当一个新的HTTPRequest出现,并且没有空闲的机器时,会请求Mesos主机获取资源,并打开一个新的VM。假设这个虚拟机已经配置

不必拐弯抹角,我将直接进入我的问题:)

我正在实施一个系统,其中有多个虚拟机、WAR文件和以下配置: -有一个运行Apache和Tomcat的主VM,配置了mod_jk以实现负载平衡

  • 这个主VM还运行ApacheMesos来监视资源和运行任务。此任务配置为将WAR文件和MySQL数据库转储复制到Mesos从机
其想法是根据可用资源,在需要时扩大/缩小规模。例如,当一个新的HTTPRequest出现,并且没有空闲的机器时,会请求Mesos主机获取资源,并打开一个新的VM。假设这个虚拟机已经配置了Tomcat、MySQL等必需品;Mesos任务正确复制所需的WAR文件和数据库转储

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

作为参考,我正在运行Ubuntu 12.04

我在httpd.conf中搜索了一些配置,但找不到有助于此场景的配置


任何帮助都将不胜感激!提前谢谢

在您告诉httpd Tomcat实例存在之前,httpd不会将任何请求转发到新的Tomcat实例。一旦任何监控检测到需要一个新的Tomcat实例,创建它,等待它启动,然后他们修改httpd配置。

Nikhil,您可以使用启动您的Tomcat并进行负载平衡(通过HAProxy)。Marathon是一个Mesos框架,用于web/app服务器等长期运行的服务。虽然它不会根据负载自动伸缩,但它有一个简单的API用于上下伸缩。

感谢Mark提供的解决方案,对于迟来的回复,我深表歉意!您的解决方案是我最初想到的,但问题是,需要重新启动HTTPD才能加载新的worker/Tomcat实例。这是不可取的。因此,我正在寻找一种解决方案,它可以添加新的workers/Tomcat实例,而无需重新启动!非常感谢。然后使用优雅的重启。太好了!我不知道这种方式。谢谢你,马克。我必须找到一种方法来动态添加新节点!要在worker.properties中添加新节点(worker),只能通过编辑worker.properties,对吗?我想没有API可以做到这一点!如果我错了,请纠正我!我正在努力获取一些动态加载的库(.so文件),它们打包在WAR文件中。不知何故,Tomcat第一次并没有接收到它,但是重新启动Tomcat修复了这个问题。你能帮我做这个吗?我的电子邮件id是nikhilkrane@gmail.com如果您需要更多信息。感谢您为superguenter提供的解决方案!我看了马拉松,真的很有趣!这个问题与我在之前的评论中提到的马克相似。HAProxy和其他公司一样,无法在不重新启动的情况下容纳新的负载平衡器服务器。在haproxy.conf中添加条目后,需要重新启动才能开始使用这个“新创建的负载平衡节点”!非常感谢。