2013-06-02 21 views
2

我在遊戲框架新手,播放框架如何協調無狀態會話與和緩存

我們說,玩2是完全基於REST的 - 有每個連接沒有Java EE會話。然而,我們可以用不同的方式保存數據:Session,Flash或Cache!

不存在任何矛盾?!還是我誤解了事情?

有人可以向我解釋嗎?

+1

「完全RESTful」。無狀態,不是嗎? –

+1

是的,REST架構風格尊重一些限制,包括「無狀態」 –

回答

8

會話和Flash數據存儲在客戶端本身的Cookie中。在完全無狀態的架構中,它們會在每個請求中發送到服務器。如果你有一個3臺服務器的池,其中任何一臺都可以處理請求。

緩存是臨時數據存儲。它不會證明您插入的數據在您需要時可用。因此,對於每個緩存數據,服務器必須能夠從數據庫中檢索它們。

這樣,根據無狀態架構,無需在每臺服務器之間共享緩存。

+0

我一直想知道:當我禁用Cookie時,Play如何繼續工作(我仍然可以通過多個請求在'session中檢索/存儲數據),你知道這個? – Aerus

+0

你應該驗證你的測試,會話機制無法工作沒有餅乾(剛剛用https://gist.github.com/studiodev/af045afc2240f79aa3b6測試) –

+0

我測試了你張貼的要點,你是絕對正確的! (可悲的是,這意味着我參加了一個uni項目,雖然沒有用我寫的代碼,但測試應該指出這些缺陷) – Aerus