【发布时间】:2016-11-01 10:49:18
【问题描述】:
我们何时使用重新获取调度程序刷新代理,使用它们的目的是什么?
我在 AEM 文档中没有找到很多关于此的信息。
【问题讨论】:
标签: aem dispatcher flush
我们何时使用重新获取调度程序刷新代理,使用它们的目的是什么?
我在 AEM 文档中没有找到很多关于此的信息。
【问题讨论】:
标签: aem dispatcher flush
使用重新获取刷新代理的原因是确保您的页面在复制后立即缓存在调度程序上。
使用普通刷新代理,您将刷新缓存,并且刷新的内容只会在首次请求后再次从发布者检索。这会产生潜在的风险,因为如果您的网站突然出现高流量高峰,许多对先前刷新页面的请求可能会在很短的时间内到达发布者。例如,您在晚上流量较低时刷新大量页面,而在早上,您的用户开始访问该站点以查看新内容。在这种情况下,Dispatcher 很可能会收到对同一页面的多个并发请求并将它们转发给 Publisher,因此您在每个页面上查看的请求不止一个。
以这种方式删除缓存文件适用于不太可能同时接收同一页面请求的网站。
使用重新获取刷新代理允许您预先填充缓存,因为它指示调度程序在刷新发生后立即从 Publish 实例中检索页面。这样,Dispatcher 不太可能调用 Publisher 来处理对同一内容的多个并发请求,并且您可以控制重新获取的时间。以后发生的任何潜在流量增加只会导致从 Dispatcher 缓存中提供页面,而不会影响 Publish 实例。
重新获取代理让您可以更好地控制 Publish 实例应该何时呈现页面。您可以控制复制事件,并且知道页面何时必须由 Publish 实例呈现。例如,您可以在晚上流量较低时执行重新获取刷新,并确保在实际用户开始访问您的网站之前,每个页面都在夜间缓存,从而增加服务器上的负载。
再次引用文档:
当网站可能同时收到对同一页面的客户端请求时,删除并立即重新缓存文件。立即重新缓存确保 Dispatcher 只检索和缓存页面一次,而不是为每个同时的客户端请求一次。
一句警告。在尝试复制大部分内容或您的自定义 AEM 代码不是很快时,您必须非常小心使用重新获取代理。如果您同时激活许多页面,您最终可能会对自己执行 DDOS 攻击,调度程序会用大量请求杀死发布者。根据 AEM 代码的性能,效果会有所不同。同时立即重新获取刷新所有内容是一个非常糟糕的主意,尤其是当您的网站需要大量资源来呈现页面时。
【讨论】: