如何通过REST API减少数据传输的延迟

5
我有一个应用程序,从我们的另一台服务器以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个回答

6

我首先会看一下这8秒延迟有多少是由以下原因引起的:

  1. 服务器端处理(数据生成需要花费的时间)。 有很多提高这个时间的技巧,包括:

    • DB索引

    • 缓存

    • 更快的to_json库

一些非常好的资源是关于Rails可扩展性的NewRelic播客http://railslab.newrelic.com/2009/02/09/episode-7-fragment-caching

  1. 传输延迟(数据在服务器和客户端之间传输所需的时间)


3

gzip 可以显著减少文本数据的大小并优化加载速度。它也被 YSlow 推荐使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接