2013-10-20 34 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中添加條目之後,需要重新啓動才能開始使用這個「新創建的節點進行負載平衡」! 謝謝! –

相關問題