2012-06-07 96 views
2

我最近遇到this article,討論如何利用mod_cluster來創建動態的Tomcat集羣。我的公司即將邁出第一步,進入亞馬遜的EC2雲計算,並將在Tomcat 7上部署我們的應用程序。我們希望利用mod_cluster,以便隨着流量的增加動態擴展我們的應用程序。但是,EC2不支持使用多播,這就是本文配置羣集設置的方式。Tomcat,mod_cluster和Amazon EC2?

有沒有人爲EC2環境中的動態Tomcat羣集設置mod_cluster?我看到一個小小的提及利用S3存儲關於集羣成員的信息,但是找不到任何文件解釋如何做到這一點。有沒有人看到關於這個主題的任何好的文檔或教程?個人經驗?我會很感激你能給我的任何見解。

回答

1

我還沒有使用過mod_cluster,但是您可能希望查看Amazon的Elastic Beanstalk,因爲您的實現是使用Java編寫的。我的理解是,你編寫你的web應用程序,把它打包成一個JAR,然後簡單地讓亞馬遜在你需要時給你更多的權力,當你不需要時給你更多的權力。基本上,它是整個架構即服務:您只需提供WAR文件。

+0

我看了Elastic Beanstalk。但是,我們需要對EB提供的環境(數據庫等)進行更多的控制。 – Shadowman

+0

我對你不會有什麼控制感興趣,在這裏。我自己並沒有使用過EB,所以我不太瞭解它的功能,但我可能會提出一些建議。 –

1

在我閱讀時,本文的主要目標是在實例中有大量用戶訪問應用程序時實現LoadBalancing。在AWS環境中,可以使用Christopher Schulz建議的Elastic Beanstalk輕鬆實現。

我不確定您期待什麼樣的控件,但使用Elastic Beanstalk可以控制應用程序的自動調節,負載平衡,設置實例的最大和最小數量,應用程序關閉時的電子郵件警報或更改不同的狀態。增加減少JVM heapspace/permgen空間。將tomcat日誌轉到S3。根據CPU利用率/網絡輸入/輸出等修改觸發器管理,切換到自定義AMI,以便在生產環境中進行自定義更改。

Elastic Beanstalk有很多選項可以完全控制您的應用程序。請讓我知道你是否有任何關於Beanstalk的疑問。

+0

我們的主要目標是負載平衡以及服務器關閉時的故障切換。我們快速瀏覽了Elastic Beanstalk,但希望直接管理我們自己的服務器的靈活性可以提供。 – Shadowman

+0

對於Elastic Beanstalk Loadblancing&Auto-Scaling的靈活性測試,我使用了Apache Jmeter(負載測試和壓力測試工具)。結果足夠了,每當負載(請求數量)增加時,beanstalk就會縮放實例,並在請求減少時縮小實例。 –

4

提供了使用代理服務器列表配置在亞馬遜的EC2雲與Mod_cluster沒有問題。

多點傳送用於httpd平衡器自我宣傳。新的工作者節點可以選擇它並向平衡器註冊。 零配置。

由於沒有可用的多播,所以廣告關閉。你需要做的是告訴工人在哪裏尋找平衡器。 Httpd平衡器的配置與mod_jk不同,不需要修改(您不需要指定任何關於worker的內容)。

對於的tomcat6:

<Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" 
    proxyList="mybalacer.com:port" ... 
    ... 
/> 

對於AS7:

<subsystem xmlns="urn:jboss:domain:modcluster:1.1"> 
    <mod-cluster-config advertise-socket="modcluster" proxy-list="mybalacer.com:port" ... 
    ... 
    </mod-cluster-config> 
</subsystem> 

玩得開心。