2011-01-13 59 views
4

我在這個安靜的環境中工作了一段時間,但仍然沒有結論。Microsoft Azure中Tomcat的水平縮放

我想(爲一個服務1,2,3,... Tomcat實例)做微軟Azure Tomcat實例的水平縮放。我閱讀了很多關於會話複製,集羣......與Tomcat的文章。由於Azure不支持多播,所以沒有簡單的方法來對Tomcat進行羣集。另外,粘性會話無法選擇,因爲Azure會循環負載均衡。設置兩個服務 - 一個與兵馬俑或Apache mod_jk的 - 和其他與Tomcat實例似乎矯枉過正,我(如果連可行)...

這甚至可能嗎?

在此先感謝您閱讀和回答我的問題。每個評論/想法都非常感謝。

回答

1

有,你可以使用新的AppFabric緩存服務,或有使用Azure上的Memcache,將這種幫助的例子嗎?

http://code.msdn.microsoft.com/winazurememcached

+0

非常感謝 - 這看起來非常有趣,我會與http://code.google.com/p/memcached-session-manager/一起嘗試。你有沒有使用winazurememcached的經驗? – Fabe 2011-01-13 23:23:29

+0

不怕,但我知道克里斯奧爾德,他在twitter @ cauld – Doobi 2011-01-14 00:01:26

+0

非常感謝你;) - 一個簡短的問題:inordner保持所有實例是最新的,有必要強制tomcat將每一個更改的會話存儲在數據庫。這是可能的,而無需更改應用程序的代碼? – Fabe 2011-01-14 09:26:37

0

我不認爲你可以在Azure上運行Tomcat。即使您可以(使用虛擬機角色),在Amazon EC2上的Linux VM上運行它也可能更便宜。

編輯

我看這是可能使用Tomcat解決方案加速器。但看看免責聲明:

此解決方案加速器提供 僅供參考和 微軟或Infosys公司不作任何保證 ,任何明示或暗示

這是不支持的解決方案。我知道管理決策往往很難回答。但使用不支持的生產系統軟件時,如果有更便宜的支持替代品,通常不是一個好主意。

1

爲什麼你覺得運行2個服務確實是矯枉過正?如果您有沒有問題,有向外擴展至ň Tomcat實例,爲負載分配添加其他服務是在我的書是完全可以接受的解決方案。通過運行在最小2個實例該服務,該服務本身符合Azure的SLA要求:因爲它是會得到在Azure上您的正常運行將是一樣好,而你避免SPOF(單點故障)。

你可以與像兵馬俑產品去的,但它也非常簡單寫一個簡單的socket服務器路由HTTP會話恢復在Windows Azure上運行的特定實例。你將不得不知道節點recyles,但這是相當可行的。

注意的memcached需要額外Azure的服務,以及(Web角色)時,AppFabric緩存服務不(但也有與它相關的成本)。我不知道Tomcat,但是對於IIS,您可以輕鬆地將會話狀態從內存中移至持久(SQL Azure或Azure存儲)。一個需要注意的:對於高容量的網站,交易成本Azure存儲實際上可以成爲您的部署成本驅動程序,如果您存儲會話信息出現。 SQL Azure可能是更具成本效益的解決方案,但另一方面可能不支持您的解決方案的開箱即用。