Как уменьшить задержку данных, отправляемых через API REST - PullRequest
3 голосов
/ 26 марта 2010

У меня есть приложение, которое получает данные в формате JSON с одного из наших других серверов. Проблема, с которой я сталкиваюсь, заключается в значительной задержке при запросе этой информации. Поскольку передается много данных (около 1000 записей на запрос, где каждая запись довольно большая), существует способ, с помощью которого сжатие поможет снизить скорость. Если да, то какую схему сжатия вы бы порекомендовали.

Я прочитал в другой ветке , что их структура данных также имеет большое значение для типа сжатия, который необходимо использовать. Структура данных является последовательной и напоминает следующую

 :desc=>some_description
 :url=>some_url
 :content=>some_content
 :score=>some_score
 :more_attributes=>more_data

Может кто-нибудь порекомендовать решение, как я мог бы уменьшить эту задержку. Их задержка составляет около 6-8 секунд. Я использую Ruby on Rails для разработки этого приложения, и сервер, предоставляющий данные, по большей части использует Python.

Ответы [ 2 ]

3 голосов
/ 26 марта 2010

Сначала я посмотрю, как много из этой 8-секундной задержки связано с:

  1. Обработка на стороне сервера (сколько потребовалось для создания данных) Есть много методов, чтобы улучшить это время, в том числе:

    • индексы БД

    • Кэширование

    • более быстрая библиотека to_json

Некоторые отличные ресурсы - это подкасты NewRelic о масштабируемости Rails http://railslab.newrelic.com/2009/02/09/episode-7-fragment-caching

  1. Задержка передачи (сколько времени потребовалось для передачи данных между сервером и клиентом)

2 голосов
/ 26 марта 2010

gzip может значительно уменьшить размер текстовых данных и оптимизировать скорость загрузки. Также рекомендуется YSlow .

...