клиент веб-сервиса в GAE работает слишком медленно - PullRequest
0 голосов
/ 20 января 2012

У меня есть веб-приложение на основе Java, которое размещено в Google App Engine. Существует простой веб-сервис для вызова Amazon Product and Advertising API для поиска книг, когда пользователь вводит название. Все отлично работает в моей локальной среде разработки. Тем не менее, вызов веб-службы раздражающе медленно на производстве.

например. Когда я вызываю вызов веб-службы в моей среде разработки, для возврата ответа требуется около 3-4 секунд. В производстве один и тот же вызов одного и того же API займет 15-16 секунд. На данный момент в хранилище данных нет никаких действий, только вызов веб-службы и отображение результатов.

Я почти уверен, что это не начальные проблемы с загрузкой, о которых говорят другие в отношении GAE на производстве. Это было постоянно медленно, независимо от того, нагрелся ли нагрузка. Я пытался искать везде, но никто не жаловался на ту же проблему. Кто-нибудь знает, что это может быть? Есть ли хороший инструмент для решения проблемы производительности? Спасибо!

Вот мое обновление от 23.01.2012: Я определил узкое место - получение порта от Amazon Service занимает около 10 секунд (я использовал клиент веб-службы на основе SOAP). Мое решение состоит в том, чтобы использовать клиент RESTful, и производительность значительно улучшается. Теперь получение информации от Amazon занимает всего 1 секунду.

1 Ответ

1 голос
/ 22 января 2012

Скорость отклика API Amazon не имеет ничего общего с производительностью GAE.

Скорее всего, Amazon ограничивает доступ к своим API по IP. Поскольку GAE является общей службой, имеющей набор общих IP-адресов, возможно, в GAE есть другие приложения, вызывающие Amazon и способствующие задержке. Если это продолжает вызывать проблемы, вы можете установить прокси-сервер где-нибудь (Amazon EC2?).

...