对REST资源进行极为激进的HTTP缓存的建议

时间:2013-05-05 11:43:40

标签: rest scalability varnish haproxy

我有一个设置,我希望在我的内部代理上有极其激进的HTTP缓存。基本上,我想要实现的是这样一种简单的缓存策略:

  • 任何没有500x或400x的GET请求无限期缓存
  • 没有500x或400x的任何PUT或POST或DELETE或PATCH使资源及其子路径无效(因为我只使用嵌套资源而且我经常使用它们。)

我不打算有一个荒谬的子路径数量(每个根级资源大约1000个,显然越来越少的钻取)。

所以基本上我想避免绝对大多数请求甚至触及我的核心应用程序。

我计划在一台带有大量内存和恶意存储的单独机器上运行缓存后端,并且会有一台这样的机器(所以我不必跨群集或任何类似的东西到期)。

哪个代理缓存更适合此任务?清漆或HAProxy?为实现这种到期,我应该寻求哪些设置?这是使REST服务器缓存友好的常见模式吗?

1 个答案:

答案 0 :(得分:1)

HAproxy只是一个负载均衡器。它不会为你做任何缓存。

对于您描述的案例,清漆是一个不错的选择。至于配置,最好从后端发送缓存详细信息(ttl / expiry time和cachability),这将指示varnish对文档的缓存处理。