2012-08-14 49 views
0

考慮到使用AppEngine的webapps的生命週期,我有些懷疑。 讓我們考慮以下情況:我希望servlet在我的p2p網絡中是超級對等的,它提供有關當前連接的用戶的信息以及在使用p2p協議時有用的所有其他詳細信息。App Engine servlet生命週期

我決定使用Datastore Java API存儲這些數據。當請求到達應用程序時,數據將從數據庫中檢索併發送給用戶。簡單。這是事情 - 數據檢索似乎有點多餘。我想知道是否可以在應用程序啓動時檢索一次數據,然後將其發送給用戶。

我知道60秒的請求和響應限制,並基於這個主題Google App Engine Instance Life Cycle,我猜每個用戶請求都會創建另一個servlet實例,並且每次用戶發送時都必須檢索所有數據一個要求。我對嗎?有沒有什麼可以做到擺脫冗餘數據庫訪問?如何使用Google提供的後端?

在此先感謝!

回答

0
  1. 對於每個請求都不會啓動新實例。

  2. 當GAE認爲它需要更多計算能力來爲請求提供服務時,會啓動實例。

  3. 您永遠無法知道哪個實例將爲請求提供服務。

  4. 後端是固定實例(=您配置了多少個正在運行),因此它們非常適合保存共享數據。請記住:後端不是永久性存儲,它們可以隨時重新啓動(根據我的經驗,每天發生一次)。因此,您需要保存數據

  5. 您可以使用memcache(=易失性,但又快又便宜)來保存共享數據和數據存儲作爲後備(=可靠,但速度較慢且價格昂貴)。

0

不,你是不對的。 Servlets - 即實例 - 持續多個請求。但是一生是不可預測的,你不應該依賴它。

您應該使用memcached來存儲這種類型的數據。