2012-06-04 27 views
0

遊戲數據我創建了一個在線遊戲,使用Java的應用服務引擎作爲後端。 //我的遊戲使用的WebSocket,使用通道API 但我有些對象需要在應用現場的持久性。尋找解決方案節省AppEngine上的Java

  • 靜態對象是好的,但在AppEngine上它是壞的,因爲實例啓動停止功能無法管理
  • - Memcache的是一樣的,無法控制時,EXP(有辦法讓它永遠EXP)
  • - 數據存儲是veryslow和昂貴

我尋找解決方案節省AppEngine上的Java遊戲對象

回答

1

您可以在後端運行,但它確實不會縮放。

什麼你可能需要做的是確定應用程序引擎是否確實要用於構建你的遊戲平臺。如果數據存儲性能不能爲您降低性能,那麼您可能需要另一種體系結構。很可能你想要一個更傳統的客戶/服務器體系結構。

此外,不會對你的遊戲架構的任何詳細信息,這是很難回答你的問題。

+0

對不起。 //我的遊戲使用websocket,使用通道API –

0

Memcached是要走的路,你無法控制它,但如果你想使用的應用程序引擎會有妥協。我在python上使用Memcache的經驗是,大多數時候,一個實例運行緩存是有效的。即使在緊密的情況之間,它似乎也不會經常過期。當我檢查我的日誌時,通常只會在實例之間有很長時間(小時+)時看到Memcache創建過期對象。

你應該配置您的Java和Python代碼它可能是用Python是更快的啓動時間將您的應用程序更適合。或者如果你必須使用java,你可能想讓幾個空閒的實例能夠在沒有啓動滯後的情況下處理請求。你可能能夠使用Cron任務來保持memcache新鮮我還沒有嘗試過,因爲我的代碼通常不那麼敏感。