将Varnish后端的响应传递给solr

时间:2017-03-16 00:36:31

标签: command-line solr hook varnish

是否有人知道是否可以选择将清漆与Solr结合使用。

我想做的是:

  1. 用户请求网址
  2. Varnish没有缓存版本或只有过时版本
  3. Varnish调用后端并最终收到回复
  4. 这就是我想要挂钩并将后端响应传递给" ./ bin / solr post ..."因此,每次发送新内容版本时,我的solr索引都会立即更新。

    这可能吗?

    提前致谢

    鲍里斯

1 个答案:

答案 0 :(得分:0)

这是一个双重问题 - 一个,在Solr面前坚持使用Varnish,就像你期望的那样。它消除了Solr的负担,并允许Varnish返回内容而无需查询Solr。

但是,您应该将索引过程与Varnish管道分开,否则如果多个线程开始要求在短时间内启动索引过程,则可能会遇到非常糟糕的时间。这样做的正确方法是有一个合理的时间来生活Varnish中的响应,使用expire(通过禁令或Varnish中的类似内容,或通过在请求中附加索引版本标识符到Solr),但启动并执行索引在清漆之外'提交文件。

当索引完成时,您向Varnish发出禁令,告知Varnish任何现有的缓存响应都无效 - 这使Varnish再次开始查询您的后端。通过这种方式,Varnish可以执行它的优点,缓存内容,并且您可以保留决定何时更新索引的逻辑以及何时需要在Varnish之外进行更新。

虽然Solr做了有效的缓存,但Varnish做得更好(因为它只能考虑响应,而不必再考虑链中的任何后果),因此可以减轻重复查询的负担。