2010-06-14 33 views
10

我試圖決定在會話複製的Tomcat + Apache反向代理模式中哪個更好。部署更常見的是什麼?會話複製或粘貼會話?會話複製有什麼缺點嗎?Tomcat上會話複製的缺點是什麼?

感謝

+0

您是否指的是跨多個集羣Tomcat服務器的「會話複製」,以便會話可以故障切換? – JoseK 2010-06-15 04:36:28

+0

是的!我想知道什麼更好,會話複製或粘貼會話及其缺點。 – 2010-06-15 14:14:00

回答

13

如果你去會話複製,我可以指出以下幾點注意事項。

性能

主要缺點將是性能。複製的會話涉及將會話數據複製到集羣中的所有服務器。集羣中擁有的服務器越多,涉及的額外開銷就越多。

Tomcat通過定義會話複製的兩種模式來幫助解決這個問題。

器DeltaManager(默認)和BackupManager

從這個URL http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html

使用上面的配置將 使所有到所有使用到器DeltaManager複製 會議增量會話複製 。我們的意思是 表示會話被複制到集羣中所有其他節點的 。 這對於較小的集羣 非常適用,但我們不建議將它用於較大的集羣(大量的tomcat節點) 。當使用增量管理器時,它也將 複製到所有節點,即使節點 也沒有應用程序 部署。

爲了解決這個問題,你需要使用備份管理器 。 此管理器僅將 會話數據複製到一個備份節點,而 僅複製到部署了 應用程序的節點。在 BackupManager的缺點:不太戰鬥 測試作爲增量經理

this URL良好的設計技巧在集羣如果啓用會話複製。

內存

多少個併發用戶將被擊中的應用程序?用戶越多,數據存儲到會話中的數量就越多,因此會話複製的負載也會過大。

代碼考慮

另外,你需要確保數據被放入會話應用程序是序列化的。序列化會話數據對於複製會話狀態具有一些開銷。將會話大小保持在合理範圍內是一個好主意,因此開發人員需要檢查會話中的數據量。

粘性會話

鑑於這些考慮,它實際上依賴於用例的關鍵性。如果您單獨進行粘性會話,那麼在重要的旅程中可能會丟失用戶數據。

您是否有手段恢復 - 例如:在訂單或付款旅程的每個步驟中將關鍵數據持久化到數據庫中?如果不是用戶必須登錄並重新開始。對於不是交易型的網站來說,這是很好的,但是瀏覽手冊型數據或者填寫表單來捕獲不是付款等的數據。

0

我更喜歡使用Memcache的Sticky會話。