2012-08-14 115 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来存储这种类型的数据。