内存/状态在谷歌应用引擎中如何运作?服务器实例

时间:2011-03-29 03:06:30

标签: google-app-engine gwt state instance

我有一个GWT / GAE项目,在服务器端有一个Strings的arraylist。我原先假设访问应用程序的每个客户端都有自己的服务器实例。但是今天在我执行它的同时测试应用程序运行的某些字符串弹出。我没有使用任何数据存储,只是内存。在GAE中处理此问题的正确方法是什么?创建一个单独的类来存储字符串,并以某种方式将其对象与客户端相关联(可能通过每次调用服务器时发送带有用户名的参数?

1 个答案:

答案 0 :(得分:1)

App Engine会根据您所获得的流量提供尽可能多的应用实例。一个服务器将为多个用户提供服务,并且一个用户可以由多个服务器提供服务。您不应该将任何每用户状态存储在内存中 - 它是共享的,并且它是不可靠的,因为实例可能随时关闭。

实际上,为每个用户启动应用程序的新实例是不切实际的:HTTP是无状态的,因此首先没有用户的概念,并且它会使用太多的用户其他资源。

您应该在数据存储区和/或Memcache中存储每用户状态。