Эффективные веб-сервисы с использованием AppEngine - PullRequest
0 голосов
/ 23 февраля 2012

Я пытаюсь использовать AppEngine как своего рода веб-сервис RESTful.Предполагается, что служба выполняет простые операции поиска и размещения из Datastore, поэтому Objectify, по-видимому, подходит для покрытия этой части.Он также выполняет несколько операций поиска в других службах, если для этой части отсутствуют данные в Datastore'. I'm using Redstone XMLRPC`.

Теперь у меня есть пара вопросов о том, как проектировать обслуживающую часть с учетомКвоты AppEngine (я думаю, в большинстве случаев нужно думать об эффективности, но биллинг AppEngine заставляет больше людей думать об эффективности).

  1. Сначала давайте рассмотрим, что я использую простой Servlets.В этом случае я вижу два варианта.Либо я создаю несколько сервлетов, каждый из которых предоставляет свою услугу с Json, переданным каждому из них, либо я использую одну (или меньшее количество) службу и определяю действие, которое нужно выполнить, основываясь на параметре, переданном Json.Будет ли какой-либо дизайн иметь какое-либо значение для количества часов и т. Д., Рассчитанных по AppEngine?

  2. Какая разница в стоимости, если я использую среду RESTful, такую ​​как Restlet или RestEasy в отличие от базового подхода?

Этот вопрос является чем-то вроде следующего: Создание веб-службы Java с помощью Google AppEngine

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Я согласен с @ Igor.

Однако есть еще одна вещь, которую необходимо учитывать: http сессий.

GAE поддерживает http сессий Поскольку GAE является распределенной системой, сеансы хранятся в Datastore (и кешируются в Memcache для эффективного чтения).Сеанс обновляется в каждом запросе (для поддержки срока действия), поэтому при каждом запросе осуществляется доступ к хранилищу данных.

Сеансы не требуются для REST и должны быть отключены.

1 голос
/ 23 февраля 2012

Это не так важно, потому что большинство затрат идет на хранилище данных, поэтому внешняя микрооптимизация не имеет значения.

Вы можете сэкономить, может быть, несколько центов, выбрав «простой сервис», но ... это ваша цель? Гораздо важнее создать хорошие структуры данных, подготовить все необходимые данные в фоновом режиме, разработать хорошую стратегию кэширования и т. Д.

...