App Engine servlet生命周期

时间:2012-08-14 13:32:23

标签: java google-app-engine p2p

我怀疑使用AppEngine考虑webapps的生命周期。 让我们考虑以下情况:我希望servlet在我的p2p网络中是超级对等的,它提供有关当前连接用户的信息,以及使用p2p协议时有用的所有其他细节。

我决定使用Datastore Java API存储这些数据。当请求到达应用程序时,将从数据库中检索数据并将其发送给用户。简单。事情就是这样 - 数据检索似乎有些多余。我想知道是否有可能在应用程序启动时检索数据,然后将其发送给用户。

我知道60秒的请求和响应限制,基于这个主题Google App Engine Instance Life Cycle,我猜每个用户请求都会创建另一个servlet实例,并且每次都必须检索所有数据用户发送请求。我对吗?是否可以采取措施摆脱冗余数据库访问?如何使用Google提供的Backend?

提前致谢!

2 个答案:

答案 0 :(得分:0)

不,你不对。 Servlet - 即实例 - 持久存在于多个请求中。但是生命周期是不可预测的,你不应该依赖它。

您应该使用memcached存储此类数据。

答案 1 :(得分:0)

  1. 不会为每个请求启动新实例。

  2. 当GAE认为需要更多计算能力来处理请求时,实例才会启动。

  3. 您永远不知道哪个实例将提供请求。

  4. 后端是固定实例(=您配置了多少个正在运行),因此它们非常适合保存共享数据。请记住:后端不是永久存储,它们可以随时重启(根据我的经验,这种情况每天发生一次)。所以你需要保存你的数据

  5. 您可以使用memcache(= volatile,但速度快,价格便宜)将共享数据和数据存储保存为后备(=可靠,但速度较慢且价格昂贵)。