我使用JSP + Struts2 + Tomcat6 + Hibernate + MySQL作爲我的J2EE開發環境。該項目的第一階段已經完成,並在一臺服務器上運行。由於網站規模的擴大,預計未來我們會面臨一些性能問題。在多個服務器上分發J2EE應用程序有哪些選擇?
所以我們想要在幾臺服務器上分配應用程序,我在這裏有什麼選擇?
我使用JSP + Struts2 + Tomcat6 + Hibernate + MySQL作爲我的J2EE開發環境。該項目的第一階段已經完成,並在一臺服務器上運行。由於網站規模的擴大,預計未來我們會面臨一些性能問題。在多個服務器上分發J2EE應用程序有哪些選擇?
所以我們想要在幾臺服務器上分配應用程序,我在這裏有什麼選擇?
當你使用Tomcat時,我建議看看mod_cluster。但我建議你考慮一個真正的應用服務器,比如JBoss AS。另外,請確保運行一些性能測試並瞭解應用程序的瓶頸在哪裏。例如,如果數據庫存在瓶頸問題,則投放更多應用程序服務器無效。
在優化任何應該檢測瓶頸的地方(服務,數據庫,...)之前。如果你不這樣做,優化將浪費時間和金錢。
然後,優化是例如取決於你的使用情況。
例如,如果您有隻讀應用程序,添加瓶頸是Java Server和數據庫,那麼您可以設置兩個數據庫服務器和兩個Java服務器。
硬件也很重要。可能是更新硬件的最簡單方法。但是這隻有在硬件是瓶頸時纔會起作用。
您可以使用任何支持集羣的J2EE應用程序服務器(例如WebLogic,WebSphere,JBoss,Tomcat)。您已經在使用Tomcat,因此您可能需要使用它們的羣集解決方案。請注意,每種產品都提供不同級別的集羣支持,因此您應該在選擇特定的應用服務器之前進行一些研究(確保它是適合您需求的正確集羣解決方案)。
將代碼從獨立移植到集羣環境通常需要不可忽視的開發工作量。在確保應用程序不依賴文件系統上的任何本地文件(無論如何這都是錯誤的J2EE實踐)之前,需要確保您的應用程序(HTTP會話或有狀態的EJB - 如果有的話)傳播到羣集中的所有節點等等。通常,越無狀態,轉換到羣集環境越平滑。
a)【約5年前J2EE已經重新命名爲Java EE】(http://java.com/en/about/javanaming.jsp)b)關於你在說什麼,沒有什麼EE。它是一個簡單的web應用程序,可以在任何servlet容器上運行,並且不需要Java EE應用程序服務器(不管怎樣,Tomcat不是Java EE兼容的) – 2011-05-03 07:25:35