Как работает память / состояние в google app engine?Экземпляры сервера - PullRequest
1 голос
/ 29 марта 2011

У меня есть проект GWT / GAE, у которого есть массив строк на стороне сервера. Первоначально я предполагал, что каждый клиент, который получает доступ к приложению, получает свой собственный экземпляр сервера. но сегодня, когда кто-то тестировал строки, кто-то еще запускал приложение, я выскочил, пока я его выполнял. Я не использую хранилище данных, только память. Как правильно обращаться с этим в GAE? Создайте отдельный класс для хранения строк и каким-либо образом сопоставьте объект этого объекта с клиентом (возможно, отправляя параметр с именем пользователя при каждом обращении к серверу?

1 Ответ

1 голос
/ 29 марта 2011

App Engine раскручивает столько экземпляров вашего приложения, сколько необходимо для обслуживания объема трафика, который вы получаете.Несколько пользователей будут обслуживаться одним сервером, а один пользователь может обслуживаться несколькими серверами.Не следует хранить какое-либо пользовательское состояние в памяти - оно является общим и ненадежным, поскольку экземпляр может быть закрыт в любое время.

Действительно, было бы нецелесообразно раскручивать новоеэкземпляр вашего приложения для каждого пользователя: HTTP не имеет состояния, поэтому в первую очередь не имеет понятия о пользователях, кроме того, он будет использовать слишком много ресурсов.

Вы должны хранить состояние для каждого пользователяв хранилище данных и / или в Memcache.

...