【问题标题】:CDN for a RESTful API?用于 RESTful API 的 CDN?
【发布时间】:2014-04-14 03:46:47
【问题描述】:

我有一个 RESTful API,每周更新一次资源。也就是说,对于每个资源,我每周更新一次并允许客户访问它。这是一个不断变化的计算器。

可能有 10,000 个资源可以被请求。

是否可以将这样的内容放在 CDN 后面?传统上,CDN 用于不可否认的静态内容,即图像。我不确定我的情况在动态 静态范围内的位置。

干杯

【问题讨论】:

  • 我们在谈论什么类型的资源?多大?如果每周只改变一次,你的情况就相当稳定了。
  • 控制好缓存策略,你会没事的@Max
  • GET 请求返回 XML 和 JSON 文件
  • 它们有多大?正常的 XML/JSON 响应不会太大,可能不需要 CDN。但是您可以将它们缓存在本地内存中,并使用缓存控制标头将它们远程缓存在客户端上。如果您的文件很小,并且您希望减少客户的时间,请查看全球 DNS。对于小文件,客户端在 DNS 查找上花费的时间可能与在下载上花费的时间一样多。
  • 是的,文件很小。字节信息。

标签: rest cdn


【解决方案1】:

90% 的资源甚至可能不会被调用,如果它们被调用,将 只被叫了几次。不会是大量重复调用。

就在您的 cmets 中,您只是向我展示了 CDN 对您没有好处。

通常 CDN 的工作方式是第一次调用它从主服务器下载到区域 CDN 节点,然后交付给客户端,这意味着第一个 GET 将没有任何改进。以下对同一区域节点的 GET 将有速度提升。如果您几乎没有重复调用,那么您将看不到任何明显的改进。

正如我在 cmets 中所说,对于小文件,客户端在 DNS 查找上花费的时间可能与在下载上花费的时间一样多。研究全球 DNS 解决方案(如 Anycast)以减少连接时间。这很容易设置,几乎不需要维护。

【讨论】:

  • 谢谢。我一定会调查的。我们最大的问题是主机(英国)和客户(澳大利亚)之间的物理距离。平均延迟 500 毫秒。但是是否可以在选定的 CDN 节点上下载和缓存所有请求?
  • 这不是 CDN 通常的工作方式。新数据必须首先由本地节点检索。所以它只会对后续请求有所帮助。区域 CDN 节点仅在短时间内缓存数据以节省空间,否则,他们将需要在每个位置存储大量数据。您可能可以预加载,我猜这取决于 CDN,但它通常不是这样工作的。也许您应该考虑在亚洲、澳大利亚或美国西部购买辅助服务器。
【解决方案2】:

如果您认为您的内容将达到适当的规模水平,我认为将其置于 CDN 之后是完全合理的。只要设置缓存控制标头,以便在缓存版本可能过时时加载最新内容,就可以了。

CDN 的主要优势在于从各种不同来源请求资源,因此siteY.com 可以使用与siteX.com 相同的资源缓存版本。您是否预计会从各种不同的来源请求您的资源?

【讨论】:

  • 我主要需要它来接近客户,而无需部署到多个数据中心。负载本身不会很大,但低延迟很关键
猜你喜欢
  • 2018-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-11
  • 2015-01-03
  • 2017-12-17
相关资源
最近更新 更多