【问题标题】:Is a CDN an appropriate solution to cache query results?CDN 是缓存查询结果的合适解决方案吗?
【发布时间】:2013-01-12 17:43:15
【问题描述】:

我正在开发一个小型搜索引擎,试图找出如何缓存查询结果。 这些结果是简单的 JSON 文本,使用 ajax 请求检索。

将结果存储在内存中不是一个选项,我可以看到剩下的两个选项:

  • 使用 nosql 数据库检索缓存的结果。
  • 将结果存储在 CDN 上并重定向 http 请求(307 - 临时重定向),以防结果已被缓存。

但是,我对 CDN 没有太多经验,想知道将它用于大量临时小文本文件是否是一种好习惯。 在 ajax 请求上使用重定向是一个好习惯吗? CDN 是缓存小文本文件的合适解决方案吗?

【问题讨论】:

    标签: ajax caching scalability cdn


    【解决方案1】:

    简短回答:不。

    Long:通常,您将 CDN 用于大型静态文件,您希望 CDN 在世界各地进行镜像,以便在用户请求它们时靠近用户。当您的数据变化很大时,将更改传播到 CDN 的所有节点总是需要一段时间,同时用户会得到不一致的结果(这可能对您来说很重要,也可能无关紧要)。

    另外,为了避免更高的延迟,我不会使用 HTTP 重定向(您告诉客户端向其他地方发出第二个请求),而是确定是从缓存还是从您端的引擎获取数据(例如使用caching proxy 或负载均衡器),然后将其直接提供给客户端。

    【讨论】:

    • 感谢您的回答!如果我想将结果缓存两天,设置缓存控制标头,常规 CDN 会按预期运行吗?如果是这样的话,CDN高可用是不是可以很好地平衡重定向成本?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    相关资源
    最近更新 更多