2009-09-16 31 views
2

用Tomcat/Scala保持用戶狀態的最佳方式是什麼?我的第一個想法是在任何時候都將會話信息保留在會話中,並且如果沒有賬戶會話信息,則將用戶重定向到登錄頁面。這是一種可行的模式,還是有一種更持久的用戶信息更明智的方式?我試圖複製一個基本的購物車網站,而我現在只是在考慮解決這個問題。通過Tomcat/Scala保持狀態的最佳方式?

回答

2

有很多方法來剝皮這隻貓。只要您的物品足夠輕便(並且您的流量足夠低),您就可以將信息存儲在會話中。這可能是最簡單的解決方案,但在需要縮放或羣集時可能會遇到困難。

根據經驗,Tomcat擴展,集羣,db會話存儲等對我而言並不是很好。

另一種方法是使用cookie管理自己的令牌。然後,將給定用戶令牌的實際信息存儲在服務器上。最幼稚的實現只需要一個內存映射,但是當你重新啓動應用程序時,這會有失去所有數據的缺點。

您可以將信息保存到數據庫,並在每次請求時使用用戶令牌(可能使用某種緩存策略)進行查找。這也允許您擴展到多個應用程序服務器,而不必過多關注集羣 - 每個實例只查找用戶令牌並在共享數據庫上執行查找請求。

如果您將實際的實現包裝在一個漂亮的界面後面,您可以從簡單/便宜的會話解決方案開始,如果以後需要,可以逐步轉向更復雜的實現。需要注意的是,您必須格外小心,不要在第一次執行時將servlet特定信息泄露到接口中。

相關問題