2010-03-26 5 views
3

J'ai une application qui obtient des données au format JSON d'un de nos autres serveurs. Le problème auquel je suis confronté est, il y a un retard important lorsque vous demandez cette information. Comme beaucoup de données sont transmises (environ 1000 enregistrements par requête où chaque enregistrement est énorme), la compression pourrait-elle aider à réduire la vitesse. Si oui, quel schéma de compression recommanderiez-vous.Comment réduire la latence des données envoyées via une API REST

Je lis sur un autre thread que le modèle de données est également important sur le type de compression qui doit être utilisé. Le modèle de données est cohérente et ressemble à la

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

Quelqu'un peut-il recommander une solution à la façon dont je pourrais réduire ce délai. Ils sont retardés d'environ 6-8 secondes. J'utilise Ruby on Rails pour développer cette application et le serveur fournissant les données utilise Python pour la plupart.

Répondre

2

Je voudrais tout d'abord regarder combien de ce retard 8s est lié à:

  1. traitement côté serveur (combien ont pris pour les données à générer) Il y a beaucoup de techniques pour améliorer cette temps, y compris:

    • index DB

    • cache

    • une bibliothèque plus rapide to_json

Quelques excellentes ressources sont les podcasts NewRelic sur l'évolutivité Rails http://railslab.newrelic.com/2009/02/09/episode-7-fragment-caching

  1. délai de transmission (combien de temps pris pour les données à transférer entre la serveur et le client)

2

gzip peut réduire considérablement la taille des données de texte et optimiser les vitesses de chargement. Il est également recommandé par YSlow.

Questions connexes