簡體   English   中英

Microsoft Azure中Tomcat的水平擴展

[英]Horizontal Scaling of Tomcat in Microsoft Azure

我正在安靜的時間里工作,但仍然沒有結論。

我想對Microsoft Azure中的Tomcat實例(1,2,3,...一種服務的Tomcat實例)進行水平縮放。 我閱讀了許多有關使用Tomcat進行會話復制,群集等的文章。 由於Azure不支持多播,所以沒有簡單的方法來對Tomcat進行群集。 粘性會話也是沒有選擇的,因為Azure會進行輪詢負載平衡。 設置兩項服務-一種使用Terracotta或Apache mod_jk-另一項使用Tomcat實例對我來說似乎太過強大了(即使可行)...

這有可能嗎?

在此先感謝您閱讀和回答我的問題。 每個評論/想法都受到高度贊賞。

您可以使用新的appFabric緩存服務,或者有在Azure上使用Memcache的示例,這會有所幫助嗎?

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

您為什么會覺得運行2種服務實在是過頭了? 如果橫向擴展到n個 Tomcat實例沒有問題,那么在我的書中添加另一個服務來進行負載分配是一個完全可以接受的解決方案。 通過在至少2個實例上運行該服務,該服務本身就可以滿足Azure SLA要求:正常運行時間將與將要在Azure上獲得的運行時間一樣長,並且可以避免SPoF(單點故障)。

您可以使用諸如terracotta之類的產品,但是編寫一個簡單的套接字服務器將HTTP會話路由回到在Windows Azure中運行的特定實例也非常簡單。 您將必須知道節點循環,但這是完全可行的。

請注意,memcached也需要附加的Azure服務(Web角色),而appFabric緩存服務則不需要(但也具有與其相關的成本)。 我不知道Tomcat,但是對於IIS,您可以輕松地將會話狀態從內存中移到持久化(SQL Azure或Azure存儲)。 有一點要注意:對於大量站點,如果將會話信息存儲在Azure存儲中,則Azure存儲的交易成本實際上可能成為部署的成本驅動因素。 SQL Azure可能是更具成本效益的解決方案,但另一方面,您的解決方案可能無法立即獲得支持。

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

編輯

我看到可以使用Tomcat解決方案加速器來實現。 但請查看免責聲明:

提供此解決方案加速器僅供參考,Microsoft或Infosys不作任何明示或暗示的保證。

這是不受支持的解決方案。 我知道通常很難質疑管理決策。 但是,如果有便宜的受支持的替代品出現,則在生產系統中使用不受支持的軟件通常不是一個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM