我想知道我的(可能很奇怪)用例是否可以用 VCL 在 Varnish 中实现。我的应用程序依赖于从具有非常低延迟(即如果可能的话,亚毫秒)的可缓存 API 服务器接收响应。应用程序的编写方式使得“空”响应得到适当处理(并且在某些情况下是有效的响应),并且 API 的设计方式使得非空响应在很长一段时间内都有效(即天)。
所以,我想做的是配置清漆,以便它:
- 尝试查找(并返回)给定 API 调用的缓存响应
- 在缓存未命中时,立即返回“空”响应,并将请求排队等待后端
- 在将来调用 #2 中缓存未命中的 URL 时,返回现在缓存的响应
是否可以单独使用 VCL 使 Varnish 以这种方式运行?如果没有,是否可以编写一个 VMOD 来执行此操作(如果可以,将不胜感激指针、提示等!)