为什么我们在AEM中使用重新获取调度程序清洗代理?

时间:2016-11-01 10:49:19

标签: aem dispatcher flush

我们何时使用重新启动调度程序清洗代理程序以及使用它们的目的是什么?

我在AEM文档中找不到关于此的更多信息。

1 个答案:

答案 0 :(得分:2)

使用refetch flush agent的原因是为了确保在复制后立即将您的页面缓存在调度程序上。

使用普通刷新代理,您将刷新缓存,只有在首次请求后才会再次从发布者检索刷新的内容。这会产生潜在的风险,因为如果您的网站突然出现高流量高峰,那么许多先前刷新的网页请求可能会在很短的时间内到达发布者。例如,当流量较低时,您会在晚上刷新大量网页,而在早上,您的用户就会开始访问网站以查看新功能。在这种情况下,调度程序可能会收到同一页面的多个并发请求,并将它们转发给发布服务器,这样您就可以查看每页不止一个请求。

引用Adobe documentation

  

以这种方式删除缓存文件对于不太可能同时接收同一页面请求的网站来说是合适的。

使用refetch flush代理允许您预先填充缓存,因为它指示Dispatcher在刷新发生后立即从Publish实例检索页面。这样,Dispatcher不太可能调用发布服务器来处理同一内容的多个并发请求,并且您可以控制重新获取的时间。以后发生的任何潜在的流量增加只会导致从Dispatcher缓存提供的页面不会影响Publish实例。

Refetch代理可让您更好地控制Publish实例何时呈现页面。您可以控制复制事件,并且知道何时必须由Publish实例呈现页面。例如,您可以在夜间进行重新刷新,当流量较低时,确保每个页面在实际用户开始呼叫您的站点之前过夜缓存,从而增加服务器的负载。

再次引用文档:

  

当网站可能同时收到同一页面的客户端请求时,删除并立即重新缓存文件。立即恢复可确保Dispatcher仅检索和缓存页面一次,而不是每次同时发送客户端请求一次。

一句警告。在尝试复制大部分内容或者自定义AEM代码不是很快时,您必须非常小心使用重新获取代理。如果您同时激活了大量页面,您可能最终会对自己执行DDOS攻击,并且调度程序会使用大量请求查杀发布服务器。根据AEM代码的性能,效果会有所不同。同时立即刷新所有内容是一个非常糟糕的主意,特别是如果您的网站需要大量资源来呈现页面。