如何降低通过REST API发送数据的延迟

5 投票
2 回答
8416 浏览
提问于 2025-04-15 20:52

我有一个应用程序,它从我们其他的服务器获取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

gzip是一种可以大幅度减小文本数据大小的工具,它能让你的网站加载速度更快。这个方法也得到了YSlow的推荐。

6

我首先会看看这8秒的延迟中,有多少是跟以下几个方面有关的:

  1. 服务器端处理(生成数据花了多长时间)

    有很多方法可以改善这个时间,包括:

    • 数据库索引

    • 缓存

    • 更快的 to_json 库

一些很不错的资源是 NewRelic 关于 Rails 可扩展性的播客,链接在这里:http://railslab.newrelic.com/2009/02/09/episode-7-fragment-caching

  1. 传输延迟(数据在服务器和客户端之间发送花了多长时间)

撰写回答