2011-09-07 48 views
1

我有一個運行在Tomcat 7上的電子商務應用程序& IIS 7.源代碼非常大,所以我的總體目標是實現一些負載平衡對代碼進行最少的更改。最好的解決方案是通過100%重新配置服務器本身。尋找配置提示來負載平衡Tomcat電子商務應用程序

我的10000英尺觀點是這樣的:

  [Load balancer] 
     / |  \ 
[Tomcat #1] [Tomcat #2] [Tomcat #3] 
      \  |  /
     [Hibernate cache] 
       | 
     [Database Server] 

注1:從AOL始發過去的負載平衡嘗試客戶失去他們的會話(其中我們的購物車的存放處),即使負載平衡配置爲「粘性會話」

注2:電子商務的應用程序使用的JBoss 1.3的事務支持

我被困在兩個關鍵點:

  1. 配置Tomcat複製2個或多個服務器(見「注1」)之間的會話狀態
  2. 配置Hibernate來使用相同的緩存中的所有的Tomcat服務器上

襲擊在任的這些的任何鏈接有兩點值得讚賞。

P.S.我試圖通過Google尋找自己的信息並沒有提供任何幫助。我是否使用錯誤的術語來描述我的解決方案?

+0

如果您將Tomcat服務器集羣,則當負載平衡將流量發送到其他實例時,您可以在它們之間共享會話。 – Mikaveli

回答

2

關於(1)

林假設您已經閱讀了Tomcat Cluster basics和遵循的操作方法步驟?

接下來是會話複製的3種方法,並在您的羣集中選擇DeltaManagerBackupManager。對於3個服務器的小羣集,應該可以使用DeltaManager

如果在LB上發生粘連會話丟失,它是否處於高負載或始終發生?

恕我直言,移動到複製是內存密集型的,所以你應該嘗試在根攻擊問題,即LB

和(2)做JBoss TreeCache幫助?

+0

感謝有關Tomcat上集羣的信息。粘滯會話只會給AoL客戶帶來問題,但您關於內存使用的觀點是一個不錯的選擇。 JBoss TreeCache已經在應用程序中使用,但專門用於配置TreeCache以使用位於單獨服務器上的緩存的文檔證明很難找到! – Rocjoe